To parse a string with lucene, like so:
List terms = parseText("This is a test");
Add the following maven dependency:
org.apache.lucene
lucene-core
7.3.0
And imports:
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
And the code:
public static List parseText(String text) {
if (keywords == null) {
return new ArrayList();
}
List result = new ArrayList();
TokenStream stream = analyzer.tokenStream("nofield", new StringReader(text));
try {
stream.reset();
while(stream.incrementToken()) {
result.add(stream.getAttribute(CharTermAttribute.class).toString());
}
} catch(IOException e) {}
return result;
}