Lucene.Net前缀查询
我正在为我的网站搜索服务开发一个建议框。我必须搜索如下字段: Visual Basic企业版Lucene.Net前缀查询,lucene,lucene.net,Lucene,Lucene.net,我正在为我的网站搜索服务开发一个建议框。我必须搜索如下字段: Visual Basic企业版 Visual C++ Visual J++ 我的代码是: Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory("Index", false); IndexSearcher searcher = new Lucene.Net.Search.IndexSearcher( dir,true); Term term = ne
Visual C++
Visual J++ 我的代码是:
Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory("Index", false);
IndexSearcher searcher = new Lucene.Net.Search.IndexSearcher( dir,true);
Term term = new Term("nombreAnalizado", _que);
PrefixQuery query = new PrefixQuery(term);
TopDocs topDocs = searcher.Search(query, 10000);
此代码在这种情况下运行良好:
“企业”将与“Visual Basic企业版”匹配
但“企业E”与任何东西都不匹配
我在索引时和用户搜索时删除了空格
谢谢。我认为您应该使用QueryParser,让它构建适当的查询对象,而不是使用PrefixQuery之类的特定对象 在Java中:
QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "nombreAnalizado", new StandardAnalyzer(Version.LUCENE_CURRENT));
Query query = parser.parse(_que);
确保您使用的分析器与用于索引的分析器相同