【发布时间】:2012-10-02 09:33:06
【问题描述】:
我正在使用 edismax 查询处理程序在文本字段中搜索“我想要本田自行车”。
我的目的是找出其中包含“本田自行车”的文档。
现在结果包含“honda”、“bike”和“honda bike”。基本上我对“本田”和“自行车”不感兴趣。我其实对“本田自行车”很感兴趣。
有什么方法可以识别字段中的短语是否与用户查询匹配?
【问题讨论】:
我正在使用 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(最小“应该”匹配)功能
【讨论】: