我正在使用 edismax 查询处理程序在文本字段中搜索“我想要本田自行车”。
我的目的是找出其中包含“本田自行车”的文档。
现在结果包含“honda”、“bike”和“honda bike”。基本上我对“本田”和“自行车”不感兴趣。我实际上对“本田自行车”感兴趣。
有什么方法可以确定字段中的短语是否与用户查询匹配?
我会调查这些参数——pf、pf2 和 pf3。
pf——短语字段。这将让您提升您的 q 值非常接近的文档。
pf2 和 pf3 - 将输入切分为二元组(或三元组)。
还有一些 slop 设置可以在匹配中留出一些余地。
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
可以在此处使用 edismax 的 mm(最小“应该”匹配)功能