我正在阅读Lucene in Action书,我不理解多学期的短语部分。
以下文字已编入索引:
快速的棕色狐狸跳过懒狗
然后您将以下字词添加到PhraseQuery
: 快速跳转懒惰 ,其中slop等于4.这会导致匹配,但我不知道不明白这是怎么回事。当有多个术语时,如何计算移动的数量?我不明白他们是怎么做的。
同样的条款 lazy jumped quick ,slop等于8。
答案 0 :(得分:2)
slop实际上是edit distance。在它们之间插入额外的术语会增加1到距离,转置术语会增加2(第一个编辑将两个术语相互移动)。
您可以逐个进行编辑,以说明:
quick jumped lazy
距离:0 quick _ jumped lazy
距离:1 quick _ _ jumped lazy
距离:2 quick _ _ jumped _ lazy
距离:3 quick _ _ jumped _ _ lazy
距离:4 对于第二种情况:
lazy jumped quick
距离:0 lazy/jumped quick
距离:1 lazy/jumped/quick
距离:2 (所有三个词叠加,位于同一位置)quick lazy/jumped
距离:3 quick jumped lazy
距离:4 quick _ jumped lazy
距离:5 quick _ _ jumped lazy
距离:6 quick _ _ jumped _ lazy
距离:7 quick _ _ jumped _ _ lazy
距离:8