首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中为Lucene snowball编写代码

如何在Java中为Lucene snowball编写代码
EN

Stack Overflow用户
提问于 2011-12-15 17:33:23
回答 1查看 663关注 0票数 2
代码语言:javascript
复制
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);
IndexSearcher indexSearcher;
File file = new File("/sdcard/index/");
Directory indexDir = FSDirectory.open(file);
indexSearcher = new IndexSearcher(indexDir, true);
QueryParser parser = new QueryParser(Version.LUCENE_29, "DIG", analyzer);
Query query = parser.parse(mEdit.getText().toString());
ScoreDoc[] hits = indexSearcher.search(query, null, 1000).scoreDocs;    

嗨,这是我在2.9.2版本中的lucene文本搜索代码。我想为lucene snowball 2.9.2编写代码,以便如果我将搜索文本“游戏”,那么它将搜索包含“游戏”的文档,也将搜索“游戏”的文档。请告诉我怎么写这个的代码。我可以在Lucene中搜索文本,但我想在lucene snowball 2.9.2中这样做

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-15 23:27:33

而不是

Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);

您可以使用

Analyzer analyzer = new SnowballAnalyzer(Version.LUCENE_29, "English");

这样,您将在幕后使用English Stemmer。记住在索引时间和搜索时间使用相同的分析器,以避免混淆。当你使用词干分析器时,在Lucene索引中,你存储的不是确切的输入词,而是词干的词。

See Javadoc here for 2.9.在新版本的Lucene中,你有像EnglishAnalyzer这样的每种语言的分析器(更好的类型安全性,因为你不需要传入String,而是类名)。

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

https://stackoverflow.com/questions/8517885

复制
相关文章

相似问题

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