В Lucene 3.0, следующий метод() удаляется. Теперь вы должны использовать incrementToken для итерации через токены, и он возвращает false, когда вы достигаете конца входного потока. Чтобы получить каждый токен, вы должны использовать методы класса AttributeSource. В зависимости от атрибутов, которые вы хотите получить (термин, тип, полезная нагрузка и т. Д.), Вам необходимо добавить тип класса соответствующего атрибута к вашему токенизатору с помощью метода addAttribute.
Следующий образец частичного кода из тестового класса WikipediaTokenizer, который вы можете найти, если вы загрузите исходный код Lucene.
...
WikipediaTokenizer tf = new WikipediaTokenizer(new StringReader(test));
int count = 0;
int numItalics = 0;
int numBoldItalics = 0;
int numCategory = 0;
int numCitation = 0;
TermAttribute termAtt = tf.addAttribute(TermAttribute.class);
TypeAttribute typeAtt = tf.addAttribute(TypeAttribute.class);
while (tf.incrementToken()) {
String tokText = termAtt.term();
//System.out.println("Text: " + tokText + " Type: " + token.type());
String expectedType = (String) tcm.get(tokText);
assertTrue("expectedType is null and it shouldn't be for: " + tf.toString(), expectedType != null);
assertTrue(typeAtt.type() + " is not equal to " + expectedType + " for " + tf.toString(), typeAtt.type().equals(expectedType) == true);
count++;
if (typeAtt.type().equals(WikipediaTokenizer.ITALICS) == true){
numItalics++;
} else if (typeAtt.type().equals(WikipediaTokenizer.BOLD_ITALICS) == true){
numBoldItalics++;
} else if (typeAtt.type().equals(WikipediaTokenizer.CATEGORY) == true){
numCategory++;
}
else if (typeAtt.type().equals(WikipediaTokenizer.CITATION) == true){
numCitation++;
}
}
...
Смотрите также http://stackoverflow.com/questions/3916806/3916947#3916947 –