我在数据分析方面相当新,现在我正在尝试使用apache lucene tokenizer将一些文件及其内容编入弹性搜索。 这是我使用apache tokenizer
的方法 public List<String> getFilesContentWithLucene() throws IOException {
folderList = getFilesFromFolders(folderName);
Analyzer tokenizer = null;
for (File file : folderList) {
if (file.getName().endsWith(".txt")) {
StringReader reader = new StringReader(parseFile(file).toString());
TokenStream stream = tokenizer.tokenStream(null, reader);
stream.reset();
try {
while(stream.incrementToken()) {
documentTerms.add(stream.getAttribute(CharTermAttribute.class).toString());
}
stream.end();
stream.close();
}
catch(IOException e) {
// not thrown b/c we're using a string reader...
}
documentTermsMap.put(file.getName().replace(".txt",""), documentTerms);
}
}
return documentTerms;
}
我的问题是: apache tokenizer的字段参数是什么意思? TokenStream stream = tokenizer.tokenStream(null,reader)在这种形式下它抛出了NullPointer异常; 如何将索引文件及其内容用于弹性搜索?