如何使 SOLR 搜索功能 return 基于搜索输入顺序的结果

How to make SOLR search function return the result based on search input order

我正在使用 SOLR 在多值字段上执行文本查询,但它没有根据输入的内容返回。我在字段上使用带有标准分词器的 edimax。

例如,我搜索文本 "A B C",但我得到了奇怪的订单结果 结果 #1:"A C B" 结果 #2:"A B C" 结果 #3:"A C B"

我怎样才能让结果 #2 先出现。

示例查询: localhost:8983/solr/test/select?defType=edismax&fl=text,score&mm=100%&q=A B C&qf=text

回复: { "text":"A C B", "score":16.770645}, { "text":"A B C", "score":16.770645}, { "text":"A C B", "score":16.770645}, }

The pf2 and pf3 parameters to the edismax query parser 允许您提升术语按彼此顺序出现的文档。那应该可以满足您的需求。

否则,请考虑使用带有 Complex Phrase Query Parser 的提升查询 bq:

bq={!complexphrase inOrder=true}text:"A B C"