I am trying to do a facet search on the following field:

<field name="productTaxonomyName" type="text_en" indexed="true" stored="true" multiValued="false" />

the result for the facet search select?q=gold&rows=0&wt=json&indent=true&facet=true&facet.query=gold&facet.field=productTaxonomyName were:

facet_fields":{
  "productTaxonomyName":[
    "set",2018,
    "necklac",1937,
    "ear",1761,
    "ring",750,
    "pendant",524,
    "bracelet",348,
    "anklet",112,

The field values should be necklace sets, necklaces, earrings, mangalsutras, rings, pendants, bracelets and anklets instead of what is showing up in the results.

有帮助吗?

解决方案

You are seeing these facet results because of the fieldType for your productTaxonomyName field. The fieldType=text_en settting is applying filtering, stemming, tokenization, etc. to the current field. You should store facet data with a fieldType=string in addition to the one you are currently using and then facet against this new field.

<field name="productTaxonomyName" type="text_en" indexed="true" stored="true" multiValued="false" />
<field name="productTaxonomyName_facet" type="string" indexed="true" stored="false" multiValued="false" />

Then you can use a copyField directive to populate the new field:

 <copyField src="productTaxonomyName" dest="productTaxonomyName_facet" />

Update your query to the following:

select?q=gold&rows=0&wt=json&indent=true&facet=true
  &facet.query=gold&facet.field=productTaxonomyName_facet

For more details on this see the Facet Indexing section of Solr Faceting Overview.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top