首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lucene.Net PrefixQuery

Lucene.Net PrefixQuery
EN

Stack Overflow用户
提问于 2010-04-24 02:47:30
回答 1查看 1.2K关注 0票数 1

我正在为我的网站搜索服务开发一个建议框。我必须像这样搜索字段:

Visual Basic企业版

Visual C++

Visual J++

我的代码是:

代码语言:javascript
复制
  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);

下面的代码在这种情况下工作得很好:

" Enterprise“将与"Visual Basic Enterprise Edition”匹配

但是“企业E”不匹配任何东西。

我在索引时和用户搜索时删除了空格。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-24 06:13:48

我认为您应该使用QueryParser并让它构建适当的查询对象,而不是使用特定的东西,比如PrefixQuery。

在Java中:

代码语言:javascript
复制
QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "nombreAnalizado", new StandardAnalyzer(Version.LUCENE_CURRENT));
Query query = parser.parse(_que);

确保您使用的分析器与用于索引的分析器相同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2701169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档