Java 如何在Lucene 4.2.1中实现基本分析器?
Lucene 4.2.1没有StandardAnalyzer,我不知道如何实现一个不改变源文本的基本分析器。有什么建议吗Java 如何在Lucene 4.2.1中实现基本分析器?,java,apache,search,lucene,Java,Apache,Search,Lucene,Lucene 4.2.1没有StandardAnalyzer,我不知道如何实现一个不改变源文本的基本分析器。有什么建议吗 final SimpleFSDirectory DIRECTORY = new SimpleFSDirectory(new File(ELEMENTS_INDEX_DIR)); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_42, new Analyzer() {
final SimpleFSDirectory DIRECTORY = new SimpleFSDirectory(new File(ELEMENTS_INDEX_DIR));
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_42, new Analyzer() {
@Override
protected TokenStreamComponents createComponents(String s, Reader reader) {
return null;
}
});
IndexWriter indexWriter = new IndexWriter(DIRECTORY, indexWriterConfig);
List<ModelObject> elements = dao.getAll();
for (ModelObject element : elements) {
Document document = new Document();
document.add(new StringField("id", String.valueOf(element.getId()), Field.Store.YES));
document.add(new TextField("name", element.getName(), Field.Store.YES));
indexWriter.addDocument(document);
}
indexWriter.close();
final SimpleFSDirectory DIRECTORY=newsimplefsdirectory(新文件(元素索引目录));
IndexWriterConfig IndexWriterConfig=新IndexWriterConfig(Version.LUCENE_42,new Analyzer(){
@凌驾
受保护的TokenStreamComponents createComponents(字符串s、读取器){
返回null;
}
});
IndexWriter IndexWriter=新的IndexWriter(目录,indexWriterConfig);
List elements=dao.getAll();
for(ModelObject元素:元素){
文档=新文档();
add(新的StringField(“id”,String.valueOf(element.getId()),Field.Store.YES));
add(新的TextField(“name”,element.getName(),Field.Store.YES));
indexWriter.addDocument(文档);
}
indexWriter.close();
您必须从createComponents返回令牌StreamComponents<代码>空值不充分
然而,Lucene 4.2.1肯定有
如果您正在参考Lucene 4.x中StandardAnalyzer的更改,并且正在寻找旧的StandardAnalyzer,那么您将需要它
如果您真的想要一个精简的分析器,它不修改任何内容,只是以一种非常简单的方式进行标记化,那么它可能会满足您的需要
如果您根本不想修改或标记它,那么
如果您必须创建自己的分析器,如您所说,则重写方法
createComponents
,并实际构建并返回的实例。如果以上四项都不能满足您的需求,我不知道您的需求是什么,因此我不会在这里尝试一个具体的例子,但这里是来自
TokenStreamComponents也有一个arg-ctor,因此过滤器是可选的。您应该将通用分析器添加到项目中。 它们现在可以在Lucene-4.2.1.zip文件的“analysis/common”下的单独JAR文件中找到 一旦您将其添加到项目中(添加核心),您就应该能够:
import org.apache.lucene.analysis.standard.StandardAnalyzer;
我也很困惑。。我所需要的就是标准分析仪。即使是4.2.1源代码中的演示也使用StandardAnalyzer,但无法编译(因为它正在org.apache.lucene.analysis.standard.StandardAnalyzer中查找它,它已经不存在了),这并没有解决问题,StandardAnalyzer似乎也不可用。如何实例化它?您能发布一个使用analyzer并与Lucene 4.2.1一起工作的示例代码文件吗?“如果以上四个都不能满足您的需求,我不知道您的需求是什么”+1!
lucene-analyzers-common-4.*.jar
import org.apache.lucene.analysis.standard.StandardAnalyzer;