Ошибка AnalyzerUtil на Lucene - PullRequest
       70

Ошибка AnalyzerUtil на Lucene

1 голос
/ 01 января 2012

Я учусь работать с люценом.Я написал простую программу для тестирования анализаторов люцена, например:

import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.WhitespaceAnalyzer;
import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.analysis.StopAnalyzer;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.util.Version;
import org.apache.lucene.wordnet.AnalyzerUtils;
import java.io.IOException;
public class AnalyzerDemo {
    private static final String[] examples = {
        "The quick brown fox jumped over the lazy dog",
        "XY&Z Corporation - xyz@example.com"
        };
    private static final Analyzer[] analyzers = new Analyzer[] {
        new WhitespaceAnalyzer(),
        new SimpleAnalyzer(),
        new StopAnalyzer(Version.LUCENE_30),
        new StandardAnalyzer(Version.LUCENE_30)
    };
    public static void main(String[] args) throws IOException {
        String[] strings = examples;
        if (args.length > 0) {
            strings = args;
        }
        for (String text : strings) {
            analyze(text);
        }
    }
    private static void analyze(String text) throws IOException {
        System.out.println("Analyzing \"" + text + "\"");
        for (Analyzer analyzer : analyzers) {
            String name = analyzer.getClass().getSimpleName();
            System.out.println(" " + name + ":");
            System.out.print("          ");
            AnalyzerUtils.displayTokens(analyzer, text);
            System.out.println("\n");
        }
    }
}

, но получил следующую ошибку:

AnalyzerDemo.java:7: package org.apache.lucene.wordnet does not exist
import org.apache.lucene.wordnet.AnalyzerUtils;
                                ^
AnalyzerDemo.java:35: cannot find symbol
symbol  : variable AnalyzerUtils
location: class AnalyzerDemo
            AnalyzerUtils.displayTokens(analyzer, text);
            ^
Note: AnalyzerDemo.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors

Я думаю, что библиотека wordnet или AnalyzerUtils недоступна.Как я могу установить эту часть Lucene?Есть ли у вас какие-либо идеи?Почему этого не хватает?Я установил Lucene 3.5.0.

Ответы [ 3 ]

2 голосов
/ 04 января 2012

Пользовательский модуль lucene-wordnet был удален в Lucene 3.4.0. AnalyzerUtils также не существует, поэтому вам нужно либо получить Lucene 3.3.0, либо написать свой собственный для 3.5.0 на основе этого.

0 голосов
/ 21 января 2014

Вместо AnalyzerUtils.displayTokens (анализатор, текст);

Используйте функцию:

private static void displayTokens(Analyzer analyzer,String text) throws IOException
{
    TokenStream stream=analyzer.tokenStream(null,new StringReader(text));
    CharTermAttribute cattr = stream.addAttribute(CharTermAttribute.class);
    stream.reset();
    while (stream.incrementToken()){
        System.out.print(cattr.toString()+" ");
    }
    stream.end();
    stream.close();
}
0 голосов
/ 02 мая 2012

В случае word-net, вкладка word-net была удалена из lucene 3.4.0, а функциональность была объединена с анализаторами contrib.Точка № 4 по адресу: http://apache.spinellicreations.com/lucene/java/3.4.0/changes-3.4.0/Contrib-Changes.html#3.4.0.new_features.

Документы Java можно найти для того же по адресу: https://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/api/all/org/apache/lucene/analysis/synonym/SynonymFilter.html

...