0

i have to select distinct values from a specific field in solr using Java. I have applied

        SolrQuery solrQuery = new SolrQuery();
        solrQuery.add("q", "*:*");
        solrQuery.setParam("fl", "field_name");
        solrQuery.add("facet", "on");
        solrQuery.add("facet.field_name", "field_name");

And i have tried very diffrent methods but still don't work.

Unknown
  • 79
  • 3
  • 10
  • Possible duplicate of [Faceting using SolrJ and Solr4](https://stackoverflow.com/questions/14485031/faceting-using-solrj-and-solr4) – MatsLindh Mar 12 '18 at 08:22

2 Answers2

1

"facet.field_name" has to be "facet.field". A little less error prone is

query.setFacet(true);
query.addFacetField("field_name");
Holger Thurow
  • 764
  • 4
  • 12
0

SolrJ has convinient methods to achieve this.

solrQuery.setQuery("your query field","value");
solrQuery.setFacet(true);
solrQuery.addFacetField("your specific field for distincts");
solrQuery.setRows(0);

Once you hit the server with this request, you can get the unique field values as a List of FacetField objects from the QueryResponse object.

I have set solrQuery.setRows(0); to avoid query responses and make it more efficient. This doesn't affect the facet results.