【发布时间】:2014-02-16 06:31:48
【问题描述】:
我无法理解这如何成为热门。
在我的索引中我有:
wb wc wd
我的搜索词是:
"wd wc wb wa"~6
如何将第二个查询重新排列为第一个,只进行 6 次重新排列?我最初的假设是,这需要最少 slop 8 才能被击中(向左移动 wa 3 个位置,向右移动 wd 3 个位置,向右移动 wc 1 个位置,向左移动 wb 1 个位置),但我实际上得到了 slop 6 或更多。
谢谢。
【问题讨论】:
我无法理解这如何成为热门。
在我的索引中我有:
wb wc wd
我的搜索词是:
"wd wc wb wa"~6
如何将第二个查询重新排列为第一个,只进行 6 次重新排列?我最初的假设是,这需要最少 slop 8 才能被击中(向左移动 wa 3 个位置,向右移动 wd 3 个位置,向右移动 wc 1 个位置,向左移动 wb 1 个位置),但我实际上得到了 slop 6 或更多。
谢谢。
【问题讨论】:
编辑距离还包含删除和插入操作。在您的情况下,可以进行以下 6 次操作来实现结果匹配:
【讨论】:
在https://lucene.apache.org/core/8_0_0/core/org/apache/lucene/search/PhraseQuery.html#getSlop-- 中,“quick fox”和“the fox is quick”之间的编辑距离为 3 的编辑距离似乎不准确。
并不是说 Lucene 使用的编辑距离是 Levenshtein 距离(插入、删除、替换,权重均为 1),而是用 slop 为 2 的“quick fox”PhraseQuery 的测试(就够了)命中了文本“狐狸很快”(1 次删除 + 1 次插入)。
【讨论】: