SOLR短语查询



使用SOLR 4.0进行搜索并尝试短语查询时,我遇到了一个小问题。

我有一个名为"idx_text_general_ci"的字段,它是一个由所有字段组成的不区分大小写(全部小写)的字段。

当我尝试搜索短语(海洋装配工)时,我的SOLR拒绝搜索该短语,而是将该短语拆分为两个单词-

/select?defType=edismax&q=idx_text_general_ci:marine%20fitter&debugQuery=true

debugQuery=下面的真实输出:

<lst name="debug">
<str name="rawquerystring">idx_text_general_ci:marine fitter</str>
<str name="querystring">idx_text_general_ci:marine fitter</str>
<str name="parsedquery">
(+(idx_text_general_ci:marine DisjunctionMaxQuery((id:fitter))))/no_coord
</str>
<str name="parsedquery_toString">+(idx_text_general_ci:marine (id:fitter))</str>

正如您在上面看到的,它将查询分为两部分(idx_text_general_ci:marine,然后id:fatcher)。

我遇到的问题是,我在idx_text_general_ci字段中有一个与"海洋装配工"完全匹配的词,该词出现了两次,但它的排名得分低于"海洋"一词出现了三次的文档。我知道,如果我的SOLR按预期在字段中搜索短语,情况不会如此。

如果我用引号把短语括起来,我得到的结果为零。

如能提供任何帮助或推动我们朝着正确的方向前进,我们将不胜感激。

提前感谢

Alex

这里发生的情况是,您的默认查询字段显示为id,并且因为您将查询指定为

idx_text_general_ci:marine fitter

它在Solr中被翻译为CCD_ 2和CCD_。大概您想要idx_text_general_ci:marineidx_text_general_ci:fitter。您有两种选择:1)可以在每个单词前面加上正确的字段和冒号,也可以将schema.xml中的defaultSearchField更改为idx_text_general_ci

我很困惑,为什么当你把它用双引号括起来时,结果为零。但做以上的事情应该会对你有所帮助。

相关内容

  • 没有找到相关文章

最新更新