如何在Lucene中用连字符索引单词?

时间:2010-10-24 20:01:03

标签: java lucene

我有一个StandardAnalyzer工作,它使用填充HashMap的TermVectorMapper从单个文档中检索单词和频率。

但如果我在文档中使用以下文本作为字段,即

addDoc(w, "lucene Lawton-Browne Lucene");

HashMap中返回的单词频率为:

布朗1 lucene 2 lawton 1

问题是'劳顿'和'布朗'这两个词。如果这是一个真正的“双管”名称,Lucene可以将其识别为'Lawton-Browne',其名称实际上只是一个单词吗?

我尝试过组合:

addDoc(w, "lucene \”Lawton-Browne\” Lucene");

单引号但没有成功。

由于

摩根先生。

2 个答案:

答案 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)