如何使 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"
我正在使用 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"