我想在我的文档中干掉这些词,并将其归结为KStem。我在Eclipse中工作并通过将lucene-core jar文件下载到lib文件夹并将其添加到构建路径来配置Lucene。我同样为KStem jar文件做了这个。但是,我无法找到有关如何在我的Java代码中使用KStem库的任何示例或文档。我是否需要为此设置Solr - 不完全确定它是什么。
答案 0 :(得分:2)
您只需要在您的架构中配置由Lucene / SOLR拾取的KStem(在具有文档内容的字段类型中),并且只从您的代码发送索引文档。剩下的魔法(包括标记/词干/停止词删除/等)发生在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