Solr dismax突出显示不尊重分析仪



Solr 3.6.2 的模式中,有两个field声明,textexact

<field name="text" type="text" indexed="true" stored="true" /> 
<field name="exact" type="string" indexed="true" stored="true" /> 

前者使用StandardTokenizer,后者KeywordTokenizer

描述问题的 Solr 查询:

?hl=true
&hl.fl=text,exact
&defType=edismax
&qf=text+exact         <-------- here
&q=a-b

突出显示字段精确输出<em>a</em>-<em>b</em> .问题是字段exact的摘要是使用来自text的分析器生成的。

?hl=true
&hl.fl=text,exact
&defType=edismax
&qf=exact              <-------- here
&q=a-b

突出显示字段精确输出<em>a-b</em> .通过简单地从qf中去除text,我们得到了正确的分析仪,为什么?

打开debugQuery

+DisjunctionMaxQuery(((exact:a-b) | ((text:a text:b)~2)))

exact中找到匹配项后,Solr 荧光笔似乎也仅根据查询中的存在ab匹配。 hl.requireFieldMatch=true似乎确实可以解决这个问题!

相关内容

  • 没有找到相关文章