加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 02:22:11 所属栏目:Java 来源:网络整理
导读:我有一个StandardAnalyzer工作,它使用填充HashMap的TermVectorMapper从单个文档中检索单词和频率. 但是如果我在文档中使用以下文本作为字段,即 addDoc(w,"lucene Lawton-Browne Lucene"); HashMap中返回的单词频率为: 选择1 lucene 2 劳顿1 问题是“劳顿”
我有一个StandardAnalyzer工作,它使用填充HashMap的TermVectorMapper从单个文档中检索单词和频率.

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

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

HashMap中返回的单词频率为:

选择1
lucene 2
劳顿1

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

我尝试过组合:

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

单引号但没有成功.

谢谢

摩根先生.

解决方法

如果您仍希望能够使用停用词列表,我建议您尝试使用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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读