3
我已经尝试了这一段时间,并在网上四处寻找 - 但一直无法找到任何通过Lucene.NET 2.9.2搜索模糊短语的例子。 (C#)Lucene.net模糊短语搜索
是能够建议如何详细地做这个和/或提供一些示例代码 - 我会认真感谢任何帮助,因为我完全卡住了吗?
我已经尝试了这一段时间,并在网上四处寻找 - 但一直无法找到任何通过Lucene.NET 2.9.2搜索模糊短语的例子。 (C#)Lucene.net模糊短语搜索
是能够建议如何详细地做这个和/或提供一些示例代码 - 我会认真感谢任何帮助,因为我完全卡住了吗?
我假设你已经运行了Lucene并创建了一个搜索索引,其中有一些字段。因此,让我们进一步假设:
var fields = ... // a string[] of the field names you wish to search in
var version = Version.LUCENE_29; // your Lucene version
var queryString = "some string to search for";
一旦你拥有所有这些,你可以继续定义在多个领域这样的搜索查询:
var analyzer = LuceneIndexProvider.CreateAnalyzer();
var query = new MultiFieldQueryParser(version, fields, analyzer).Parse(queryString);
也许你已经有了那么远,而且只缺少模糊部分。我只是在queryString
波浪号~
添加到每一个字地告诉Lucene的做了查询字符串中的所有单词模糊搜索:
if (fuzzy && !string.IsNullOrEmpty(queryString)) {
// first escape the queryString so that e.g. ~ will be escaped
queryString = QueryParser.Escape(queryString);
// now split, add ~ and join the queryString back together
queryString = string.Join("~ ",
queryString.Split(' ', StringSplitOptions.RemoveEmptyEntries)) + "~";
// now queryString will be "some~ string~ to~ search~ for~"
}
这里的关键点是,Lucene的使用模糊搜索只为结尾条款一个~
。在 http://scatteredcode.wordpress.com/2011/05/26/performing-a-fuzzy-search-with-multiple-terms-through-multiple-lucene-net-document-fields/上找到了这个和更多有用的信息。
http://stackoverflow.com/questions/2631206/lucene-query-bla-match-words-that-start-with-something-fuzzy-how – 2010-10-29 17:54:31
耶会爱一些代码或任何有关模糊短语搜索在Lucene 2.9.2 – Tom 2010-10-29 18:46:24