【发布时间】:2015-03-13 06:31:08
【问题描述】:
假设我的索引有两个文档:
- “富吧”
- “酒吧富”
当我对“bar foo”进行常规匹配查询时,两个文档都正确匹配,但它们的相关性得分相同。但是,我希望在评分过程中单词的顺序很重要。换句话说,我希望“bar foo”有更高的分数。
所以我尝试将匹配查询放在 bool 查询的 must 子句中,并包含 match_phrase(具有相同的查询字符串)作为 should 子句。这似乎正确地得分,直到我用“bar test foo”进行搜索。在这种情况下,match_phrase 查询似乎不匹配,并且再次以相同的分数返回匹配项。
如何构建我的索引/查询,以便考虑词序但不要求所有搜索的词都存在于文档中?
【问题讨论】:
-
我认为 CirrusSearch MediaWiki 扩展可以做到这一点。结果可能出乎意料:mediawiki.org/wiki/Thread:Help_talk:CirrusSearch/…
标签: elasticsearch lucene