具有连字符的Solr Facet查询结果

时间:2016-02-16 12:49:41

标签: php solr

我正在使用PHP来使用构面字段执行SOLR查询。其中一些字段包含带连字符的文本,它给出了一个分割的构面字段结果列表

some-category-name会为数组提供我不想要的密钥'some','category','name'

我的schema.xml将类别字段定义为:

<field name="category" type="text_general" indexed="true" stored="true" required="false" multiValued="true" />

如何修复此问题,以便字符值不会在连字符上拆分?

2 个答案:

答案 0 :(得分:1)

类型&#34; text_general&#34;您在模式中选择Solr会根据以下内容对值进行标记:StandardTokenizer

你可以:

  • 使用&#34;字符串&#34;代替。 看看this question
  • 定义您自己的类型并自定义标记化过程

答案 1 :(得分:1)

理想情况下,您所面对的字段永远不应被标记化,因为Solr将每个标记视为单独的方面,并在计算方面计数时单独计算。

你应该做的是使用字符串作为你建议的字段类型或 如果您希望能够在此特定字段上进行构面和搜索,请创建类型字符串的复制字段,如此

<field name="category_facet" type="string" indexed="true" stored="true" required="false" multiValued="true" docValues="true" />

<copyField source="category" dest="category_facet" />

(注意:使用DocValues进行有效的分面处理)

然后在category_facet字段上方面。

这可以为您提供所需的结果。

相关问题