0

我有一个案例,我想像这样匹配:

查询:abcd efgh ijkl mnop

在此之后,查询受到 NGram 标记器的影响,每个单词被分成 2 个 gram 标记。

例如)查询被分成,

ab,bc,cd,ef,fg,gh,ij,jk,kl,mn,no,op

现在,在匹配时,我希望为单词中的标记定制最小匹配。

我的意思是,默认情况下,当与一个单词对应的任何一个标记与索引文档匹配时,mm=1,则返回该索引文档。如果我给 mm=2,那么任何 2 个单词中的任何一个标记都需要匹配要返回的索引文档。

但我想要的是:仅当任何 'm' 标记每个匹配 mm=num 个单词时才返回文档。

例如)我希望从至少 3 个单词中选择至少 2 个标记,以便选择索引文档。

似乎 Lucene 的 IndexSearcher 做了这个核心部分。我是否需要更改代码或任何其他可以执行上述操作的配置?

提前致谢...

4

1 回答 1

1

这并不是您所要求的,但我猜您的基本问题是“我如何确保模糊搜索只返回与原始查询‘接近’的内容?”

语法是这样做的foo~.8- 请参阅文档。基本上,.8 是编辑(Levenstein)距离除以单词长度的量度。

如果你想坚持计算必须匹配的对的想法,你可以做一些数学来找出最小的莱文斯坦距离需要是多少。

于 2012-04-19T14:11:12.923 回答