是否使用Lucene中的PhraseQuery搜索术语,在句子中按顺序进行严格匹配?
例如,如果我有“A B C”并且文档包含“A C B”,那么PhraseQuery会返回命中吗?
感谢
答案 0 :(得分:1)
是的,订单很重要。因此,在您的示例中,查询“A B C”与包含“A C B”的文档不匹配。
答案 1 :(得分:1)
如果您在PhraseQuery中使用slop,则不会。
设置查询中单词之间允许的其他单词数 短语。如果为零,那么这是一个精确的短语搜索。对于更大 这个值就像一个WITHIN或NEAR运算符。
slop实际上是一个编辑距离,单位对应于 查询短语中的术语移动位置不正确。例如,到 切换两个单词的顺序需要两个动作(第一步 将单词放在彼此之上),以便允许重新排序 短语,坡度必须至少为两个。
因此,更精确的匹配得分高于更粗略的匹配 搜索结果按精确度排序。
默认情况下,slop为零,需要完全匹配。