Solr最小匹配定制

时间:2012-04-18 21:54:20

标签: solr lucene

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

查询:abcd efgh ijkl mnop

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

例如)查询分为,

AB,BC,CD,EF,FG,GH,IJ,JK,KL,MN,没有,同

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

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

但我想要的是:只有当任何'm'标记符合mm = num-num时才返回文档。

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

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

提前致谢...

1 个答案:

答案 0 :(得分:1)

这不完全是你所要求的,但我猜你的根本问题是“我怎样才能确保模糊搜索只返回与原始查询'接近'的东西?”

语法foo~.8执行此操作 - 请参阅the docs。基本上,.8是编辑(Levenstein)距离除以单词长度的度量。

如果你想坚持计算必须匹配的对的想法,你可以做一些数学计算,确定最小的levenstein距离是什么。