Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Lucene 4.2.1中实现基本分析器?_Java_Apache_Search_Lucene - Fatal编程技术网

Java 如何在Lucene 4.2.1中实现基本分析器?

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() {

Lucene 4.2.1没有StandardAnalyzer,我不知道如何实现一个不改变源文本的基本分析器。有什么建议吗

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;