Я с трудом пытаюсь обернуть голову вокруг библиотеки Lucene.Это то, что я до сих пор:
public void shingleMe()
{
try
{
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);
FileReader reader = new FileReader("test.txt");
ShingleAnalyzerWrapper shingleAnalyzer = new ShingleAnalyzerWrapper(analyzer, 2);
shingleAnalyzer.setOutputUnigrams(false);
TokenStream stream = shingleAnalyzer.tokenStream("contents", reader);
CharTermAttribute charTermAttribute = stream.getAttribute(CharTermAttribute.class);
while (stream.incrementToken())
{
System.out.println(charTermAttribute.toString());
}
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Сбой в stream.incrementToken ().Насколько я понимаю, ShingleAnalyzerWrapper использует другой анализатор для создания объекта анализатора гальки.Оттуда я конвертирую его в поток токенов, который затем анализируется с помощью фильтра атрибутов.Однако это всегда приводит к этому исключению:
Исключение в потоке "main" java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken () Z
Мысли?Заранее спасибо!