Solr dismax强调不尊重分析仪

时间:2014-02-18 10:50:04

标签: java solr search-engine edismax 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>。 只需从text中删除qf,我们就会得到正确的分析器,为什么?

1 个答案:

答案 0 :(得分:0)

使用debugQuery

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

exact中找到匹配后的Solr荧光笔似乎也只根据查询中的状态匹配abhl.requireFieldMatch=true似乎确实打击了这个!