【问题标题】:How do I configure and use KStem in java?如何在 Java 中配置和使用 KStem?
【发布时间】:2012-10-05 08:26:04
【问题描述】:

我想对我的文档中的单词进行词干处理,并将注意力集中在 KStem 上。我在 Eclipse 中工作,并通过将 lucene-core jar 文件下载到 lib 文件夹并将其添加到构建路径来配置 Lucene。我同样对 KStem jar 文件执行此操作。但是,我找不到任何关于如何在我的 java 代码中使用 KStem 库的示例或文档。我是否需要为此设置 Solr - 不完全确定它的用途。

【问题讨论】:

    标签: java solr lucene stemming


    【解决方案1】:

    您只需将 KStem 配置为由 Lucene / SOLR 在您的架构中拾取(在将包含您的文档内容的字段类型中),并且只发送文档以从您的代码中进行索引。其余的魔法(包括标记化/词干提取/停用词删除等)发生在 Lucene / SOLR 内部(取决于您配置它们以应用于您的文档的处理步骤)。请参阅如何在 SOLR 中配置 KStem:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters/Kstem

    简而言之,Lucene 是强大的索引和检索库,用于 SOLR 内部,而 SOLR 又是成熟的搜索服务器。

    如果您需要分面搜索、自动完成、分片、复制等功能,请安装和配置 Solr。如果不是,例如,如果您的目标是拥有一些相对较小的文档索引,可以快速重新构建,并且您希望在自己的应用程序中组织搜索,那么将 Lucene 用作 Java 库。

    如何在自己的代码中使用 KStemmer:

    private final KStemmer stemmer = new KStemmer();
    // char[] term = ...
    stemmer.stem(term, len);
    

    您必须自己将文档内容拆分为术语列表。

    这是在 Lucene 中使用 KStemmer 的方式:http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemFilter.java

    请注意,KStemmer 类是 Lucene 当前主干 (org.apache.lucene.analysis.en) 的一部分:http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/en/KStemmer.java

    【讨论】:

    • 我想专门使用KStem的词干提取功能。基本上我想在我的java代码中实现这个方法——GetStemmedWords(documentText)。而且我找不到任何 KStem 文档来说明要调用哪些方法。
    • 谢谢!这正是我所需要的。但我仍然无法在 Eclipse 中配置 KStem。我已将 Lucene-core jar 文件添加到构建路径并且它可以工作。但是即使将 KStem.jar 文件添加到构建路径后,也没有检测到 KStemmer 类。
    • @AakarGupta 您需要 lucene-analyzers-common jar,请参阅我在帖子末尾的更新,例如在 Solr 4.0.0-BETA 中是:lucene-analyzers-common-4.0-SNAPSHOT.jar
    猜你喜欢
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 2020-11-25
    • 2016-01-02
    • 1970-01-01
    • 2019-04-26
    • 2017-10-31
    • 1970-01-01
    相关资源
    最近更新 更多