我正在阅读《Lucene in Action》一书,但我不明白多术语短语部分。
以下文本已编入索引:
the quick brown fox jumped over the lazy dog
然后将以下术语添加到 PhraseQuery
中:快速跳跃懒惰,斜率等于 4。这将导致匹配,但我不明白这是怎么发生的。当有多个项时,如何计算移动次数?我不明白他们是怎么做到的。
与术语惰性跳跃快相同,斜率等于 8。
最佳答案
斜坡实际上是 edit distance 。在它们之间插入额外的术语会增加 1 的距离,转置术语会增加 2(第一个编辑将两个术语移到彼此之上)。
您可以一次浏览一项编辑来进行说明:
快速跳跃懒惰
距离:0快_跳懒
距离:1快_ _跳懒
距离:2快_ _跳_懒
距离:3快_ _跳_ _懒
距离:4
对于第二种情况:
懒惰跳得快
距离:0懒惰/跳跃快
距离:1lazy/jumped/quick
distance:2(所有三个术语叠加在同一位置)快速懒惰/跳跃
距离:3快速跳跃懒惰
距离:4快_跳懒
距离:5快_ _跳懒
距离:6快_ _跳_懒
距离:7快_ _跳_ _懒
距离:8
关于java - Lucene 中的多术语短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28233104/