使用 SOLR 4.0 搜索并尝试短语查询时,我遇到了一个小问题。
我有一个名为“idx_text_general_ci”的字段,它是由所有字段组成的不区分大小写(全部小写)的字段。
当我尝试搜索一个短语(marine fitter)时,我的 SOLR 拒绝搜索该短语,而是将这个短语分成 2 个单词 -
/select?defType=edismax&q=idx_text_general_ci:marine%20fitter&debugQuery=true
debugQuery=true 输出如下:
<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:fitter)。
我遇到的问题是,我在 idx_text_general_ci 字段中出现了两次“marine fitter”,但它的得分低于出现 3 次“marine”一词的文档。我知道如果我的 SOLR 是按预期使用短语搜索字段,情况将不会如此。
如果我将短语用引号括起来,我得到的结果为零。
任何帮助或朝着正确方向轻推将不胜感激。
提前致谢
亚历克斯