我正在阅读《 Lucene在行动》一书,但我不理解多词组部分。
索引了以下文本:
敏捷的棕色狐狸跳过了那只懒狗
然后,将以下术语添加到PhraseQuery
:斜率等于4的快速跳跃懒惰。这会导致匹配,但是我不知道该如何发生。有多个条件时,如何计算移动次数?我不明白他们是怎么做到的。
术语懒惰与坡度等于8时一样快速跳跃。
最佳答案
斜坡实际上是edit distance。在它们之间插入多余的术语会使距离加1,移置的术语会使距离加2(第一个编辑将两个术语彼此叠加)。
您可以一次进行一次编辑以说明:quick jumped lazy
距离:0quick _ jumped lazy
距离:1quick _ _ jumped lazy
距离:2quick _ _ jumped _ lazy
距离:3quick _ _ jumped _ _ lazy
距离:4
对于第二种情况:lazy jumped quick
距离:0lazy/jumped quick
距离:1lazy/jumped/quick
距离:2(所有三个术语叠加在一起,在同一位置)quick lazy/jumped
距离:3quick jumped lazy
距离:4quick _ jumped lazy
距离:5quick _ _ jumped lazy
距离:6quick _ _ jumped _ lazy
距离:7quick _ _ jumped _ _ lazy
距离:8