如何对Lucene.net搜索中提供的所有单词执行模糊搜索

时间:2011-05-07 02:08:31

标签: lucene lucene.net fuzzy-search

我正在努力教我自己Lucene.Net在我的网站上实施。除了一个问题,我理解如何做几乎我需要的一切。我试图弄清楚如何允许模糊搜索搜索字符串中的所有搜索词。

例如,如果我有一个包含字符串The big red fox的文档,我试图让bag fix与之匹配。

问题是,为了执行模糊搜索,我必须为用户输入的每个搜索词添加~。我不确定最好的办法。现在我正在尝试这个

string queryString = "bag rad";
queryString = queryString.Replace("~", string.Empty).Replace(" ", "~ ") + "~";

第一个替换是由于Lucene.Net在搜索字符串已经有~时抛出异常,显然它无法处理短语中的~~。这种方法有效,但如果我开始添加模糊权重值,它似乎会变得混乱。

是否有更好的方法来默认所有单词以允许模糊?

1 个答案:

答案 0 :(得分:1)

您可能希望将文档索引为bi-gram或tri-gram。看看CJKAnalyzer,了解他们是如何做到的。您需要下载源代码并查看源代码。