Java 如何测试Lucene分析仪?
我没有从我的Java 如何测试Lucene分析仪?,java,lucene,token,tokenize,analyzer,Java,Lucene,Token,Tokenize,Analyzer,我没有从我的分析器中得到预期的结果,我想测试标记化过程 这个问题的答案是: List result=new ArrayList(); TokenStream=analyzer.TokenStream(字段,新StringReader(关键字)); 试一试{ while(stream.incrementToken()){ add(stream.getAttribute(TermAttribute.class).term()); } } 捕获(IOE异常){ //没有抛出b/c我们正在使用字符串读取
分析器中得到预期的结果,我想测试标记化过程
这个问题的答案是:
List result=new ArrayList();
TokenStream=analyzer.TokenStream(字段,新StringReader(关键字));
试一试{
while(stream.incrementToken()){
add(stream.getAttribute(TermAttribute.class).term());
}
}
捕获(IOE异常){
//没有抛出b/c我们正在使用字符串读取器。。。
}
返回结果;
使用term属性
从流中提取令牌。问题是,TermAttribute
不再在Lucene 6中
它被什么取代了
Lucene 6.6.0的等价物是什么?我很确定它被CharterMatAttribute
这张票已经很旧了,但代码可能保存得更久一些:
如前所述,TermAttribute被替换为CharterMatAttribute
。我不是Lucene专家,但这是你通过谷歌搜索得到的答案。谢谢@ErwinBolwidt,这正是我想要的答案。。。我的lucene词汇量明显不足。你能用它来回答吗?
List<String> result = new ArrayList<String>();
TokenStream stream = analyzer.tokenStream(field, new StringReader(keywords));
try {
while(stream.incrementToken()) {
result.add(stream.getAttribute(TermAttribute.class).term());
}
}
catch(IOException e) {
// not thrown b/c we're using a string reader...
}
return result;