我有一个StandardAnalyzer工作,它使用填充HashMap的TermVectorMapper从单个文档中检索单词和频率。
但如果我在文档中使用以下文本作为字段,即
addDoc(w, "lucene Lawton-Browne Lucene");
HashMap中返回的单词频率为:
布朗1 lucene 2 lawton 1
问题是'劳顿'和'布朗'这两个词。如果这是一个真正的“双管”名称,Lucene可以将其识别为'Lawton-Browne',其名称实际上只是一个单词吗?
我尝试过组合:
addDoc(w, "lucene \”Lawton-Browne\” Lucene");
单引号但没有成功。
由于
摩根先生。答案 0 :(得分:1)
如果您仍希望能够使用停用词列表,我建议您尝试使用PatternAnalyzer。它允许这样的列表并具有预填充的空白模式。
或者你包装空白分析器并在tokenStream(String fieldName,Reader reader)中执行类似这样的操作:
public TokenStream tokenStream(String fieldName, Reader reader) {
TokenStream stream = myWhitespaceAnalyzer.tokenStream(fieldName, Reader);
stream = new StopFilter(stream, stopWords);
return stream;
}
答案 1 :(得分:0)