我正在使用PHP来使用构面字段执行SOLR查询。其中一些字段包含带连字符的文本,它给出了一个分割的构面字段结果列表
some-category-name
会为数组提供我不想要的密钥'some','category','name'
。
我的schema.xml将类别字段定义为:
<field name="category" type="text_general" indexed="true" stored="true" required="false" multiValued="true" />
如何修复此问题,以便字符值不会在连字符上拆分?
答案 0 :(得分:1)
类型&#34; text_general&#34;您在模式中选择Solr会根据以下内容对值进行标记:StandardTokenizer
你可以:
答案 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
字段上方面。
这可以为您提供所需的结果。