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

Lucene.Net特性
EN

Stack Overflow用户
提问于 2008-11-28 15:21:22
回答 3查看 1.8K关注 0票数 2

我刚接触Lucene.Net,在Lucene.Net中使用哪个分析器是最好的?另外,我想知道如何使用停用词和词干提取功能?

EN

回答 3

Stack Overflow用户

发布于 2008-12-02 12:22:29

我也是Lucene.Net的新手,但我知道Simple Analyzer会省略任何停用词,并对所有标记/工作进行索引。

这里有一个到Lucene信息的链接,顺便说一句,.NET版本几乎完美地重写了Java版本,所以Java文档在大多数情况下都应该工作得很好:http://darksleep.com/lucene/。在那里有一个关于三个分析器的部分,简单,停止和标准。

我不确定Lucene.Net是如何处理词干处理的,但是这个链接http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html?page=2演示了如何在Java语言中创建自己的分析器,并使用PorterStemFilter进行词干处理。

...The Porter词干分析算法(或"Porter词干分析器“)是一种从英语单词中去除更常见的词形和词形变化结尾的过程

我希望这能对你有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-06-06 17:48:45

我找到的最好的分析器是StandardAnalyzer,您还可以在其中指定停用字。例如:

代码语言:javascript
复制
        string indexFileLocation = @"C:\Index";
        string stopWordsLocation = @"C:\Stopwords.txt";
        var directory = FSDirectory.Open(new DirectoryInfo(indexFileLocation));
        Analyzer analyzer = new StandardAnalyzer(
            Lucene.Net.Util.Version.LUCENE_29, new FileInfo(stopWordsLocation));
票数 0
EN

Stack Overflow用户

发布于 2016-12-31 05:10:42

这取决于您的要求。如果你的需求非常简单--例如,无意义的、无词干的搜索--那么StandardAnalyzer是个不错的选择。如果您查看analyzer类并熟悉Filters,特别是TokenFilter,您可以通过滚动您自己的分析器来exert an enormous amount of control您的索引。

词干分析器很棘手,深入了解您真正需要的词干类型是很重要的。我用过雪球词干分析器。例如,在英语Snowball词干分析器中,单词"policy“和"policy”具有相同的词根,并且在搜索词“policy”不是很热门的情况下,使用“policy”在文档上获得匹配。我已经实现了支持词干和非词干搜索的策略,因此可以避免这种情况,但了解其影响是很重要的。

当心像停用词这样的诱惑。如果您需要搜索短语"to be or not to be“,并且启用了标准停用词,则搜索将无法找到包含该短语的文档。

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

https://stackoverflow.com/questions/326015

复制
相关文章

相似问题

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