模糊搜索-最小相似度问题

问题描述 投票:0回答:1

我正在使用Lucene.Net版本3.0.3,并使用StandardAnalyzer创建索引。

我的索引中有一个文本,似乎模糊搜索无法正常工作。

  • 文档中的文本:CUBAEXPORT
  • 正在搜索的文本:CUBAEXPOR
  • 最小相似度:90%
  • Length(CUBAEXPORT)= 10
  • Length(CUBAEXPOR)= 9
  • 编辑距离= 1
  • 相似度=((10-1)/ 10)* 100 = 90%

据我所知,CUBAEXPOR的发现率必须为90%,但发现为88%。

enter image description here

lucene lucene.net
1个回答
0
投票

它基于搜索词的长度和索引词的长度中的较小者。因此,由于您的搜索词的长度为9,因此允许一个编辑距离的最小相似度为0.88。

最大编辑距离的计算是这样的:

int maxEdits = (int)((1-minSim) * (Math.min(textLength, targetLength)));

另外,请记住,浮点精度在这里可能是一个问题!因此,如果您将minSim = 0.8设置为5,则长度将为0,因为(1-(float).8)*5 = .99999994,并将其强制转换为int会得到0。

长而短,我不用担心磨细[[精确地在模糊查询上画线的地方。(而且我很高兴lucene消除了这种基于百分比的模糊相似性伪装)

© www.soinside.com 2019 - 2024. All rights reserved.