solr - Multiple facet.prefix on a single facet field -


i'm creating search app intensively uses solr (5.2.1) faceting functionality. 1 requirement limit number of facets returned prefix specified field.

the standard solr query syntax works single prefix value:

/select?q=*%3a*&rows=0&wt=json&indent=true&facet=true&facet.field=documentkind&f.documentkind.facet.prefix=faq 

output:

"facet_counts": {     "facet_queries": {},     "facet_fields": {       "documentkind": {         "faq": 1523       }       ... 

unfortunately doesn't work when must limit facets on field more 1 prefix:

/select?q=*%3a*&rows=0&wt=json&indent=true&facet=true&facet.field=documentkind&f.documentkind.facet.prefix=manual&f.documentkind.facet.prefix=faq 

i expected return this:

"facet_counts": {     "facet_queries": {},     "facet_fields": {       "documentkind": {         "faq": 1523,         "manual": 2366       }       ... 

but gives same output previous.

in example above match entire facet value in real use case have match prefix. show example brevity.

i filter out in app size of data returned unnecessary solr significant.

i had similar problem in application. solution problem facet local params. i.e. if i'm faceting data solr techproducts example find out number of products available or not available instock need run query this:

http://localhost:8983/solr/techproducts/select?q=*%3a*&wt=json&indent=true&facet=true&facet.field=instock 

and following result includes dictinct values instock field:

... "facet_counts":{     "facet_queries":{},     "facet_fields":{       "instock":[         "true",17,         "false",4]},     "facet_dates":{}, ... 

but in case want distinguish facet results using multiple prefixes field value. , here local params handy tool. now, if want facating based on specific value instock field true or false , need use !key label results:

http://localhost:8983/solr/techproducts/select?q=*:*&wt=json&indent=true&facet=true&facet.field={!key=instock_true+facet.prefix=true}instock  ... "facet_counts":{     "facet_queries":{},     "facet_fields":{       "instock_true":[         "true",17]},     "facet_dates":{}, ... 

so after querying data using multiple facet local params prefixes:

/select?q=*:*&rows=0&wt=json&indent=true&facet=true&facet.field={!key=documentkind_manual+facet.prefix=manual}documentkind&facet.field={!key=documentkind_faq+facet.prefix=faq}documentkind 

and see results that:

...     "facet_counts":{         "facet_queries":{},         "facet_fields":{           "documentkind_faq":[             "faq",1523],           "documentkind_manual":[             "manual",2366]}, ... 

Comments