我正在使用 edismax 查询处理程序在文本字段上搜索"我想要本田自行车"。
我的目的是找出包含"本田自行车"的文档。
现在的结果包含"本田","自行车"和"本田自行车"。基本上我对"本田"和"自行车"不感兴趣。我实际上对"本田自行车"感兴趣。
有没有办法确定字段中的短语是否与用户查询匹配?
我会研究这些参数——pf、pf2 和 pf3。
pf -- 短语字段。这将允许您提升 q 值非常接近的文档。
PF2 和 PF3 -- 将输入切成双元组(或三元组)。
还有一些倾斜的设置,可以在匹配中留出一些余地。
http://wiki.apache.org/solr/ExtendedDisMax#pf_.28Phrase_Fields.29
问题是 IDF 扰乱了分数,因此我不能完全依靠分数来自信地说出完美匹配的内容。所以我禁用了 IDF 计算。
看看
http://lucene.472066.n3.nabble.com/Identify-exact-search-in-edismax-td4011859.html#a4011976
mm (最小'应该'匹配) edismax 的功能可以在这里使用
http://wiki.apache.org/solr/ExtendedDisMax