3

我在 lucene.Net 中进行了模糊搜索。在此,如果我进行搜索Feature,则Feature, Featured,featuring只会出现。但是数据是基于文本匹配的,例如ventureculture等等。ture在该模糊搜索中匹配。我的代码是

Query query = new FuzzyQuery(new Term("ContentText", searchString));
finalQuery.Add(query, BooleanClause.Occur.SHOULD);
4

3 回答 3

2

你应该看看名为“Lemmatisation”的过程(http://en.wikipedia.org/wiki/Lemmatisation)。您想基于单词的基本形式(称为引理)构建索引 - 您应该对查询进行同样的操作。

Lucene 支持开箱即用的英语,因此应该没有任何问题。

于 2013-09-26T08:27:43.280 回答
0

您可能需要设置 Parser.FuzzyMinSim

于 2014-02-11T18:27:24.913 回答
0

您可以传递额外的过滤器来检查 minimumscore 属性以及 minimumsimilarity 可以提高结果质量的属性。我在特定场景中所做的其他事情是使用多种不同的查询类型并组合结果(过滤掉低分)并返回一个组合列表。这对于像引擎这样的东西非常有效,它可以动态地“假设你的意思是......”最初的结果而不是问你“你的意思是”。

于 2013-09-28T22:34:40.957 回答