how to do fuzzy search in Lucene.net in asp.net?

2019-06-23 02:17发布

we have creating lucene.net index and search based on this URL http://sonyblogpost.blogspot.in/. but we want the output like follow.

example: if i search "featured" i want to show related terms like "featured","featuring","feature".

Anyone can help me. thanks.

标签: c# lucene.net
2条回答
成全新的幸福
2楼-- · 2019-06-23 02:52

To perform a Fuzzy search you'll create a MultiFieldQueryParser Below is an example on how to do this:

var parser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_29, new[] { "field1", "field2" }, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));

Your version of Lucene.Net may vary.

Next you will get a Fuzzy query from the parser like this:

var query = parser.GetFuzzyQuery("fieldName", "featured", 0.7f);

The float value of 0.7f is the minimum similarity. You can tweak this number until you get the desired results. The number cannot be more than 1.0f. Executing this query using an Lucene Searcher will give you the results you expect.

查看更多
The star\"
3楼-- · 2019-06-23 02:53

You're probably looking for stemming: Stemming English words with Lucene - The link is Java, but you should be able to identify the corresponding parts of the lucene .Net API.

查看更多
登录 后发表回答