【问题标题】:Lucene TextField not tokenizedLucene TextField 未标记化
【发布时间】:2015-05-31 23:53:36
【问题描述】:

我正在将以下标题保存到索引

doc.add(new TextField(TITLE, "Button",Field.Store.YES ));

然后当我用“按钮”搜索它时,什么也没有返回。我必须搜索“按钮”才能取回任何东西。我该怎么做才能让按钮的任何子字符串给出结果?我正在使用

 StandardAnalyzer analyzer = new StandardAnalyzer();

【问题讨论】:

    标签: java lucene tokenize


    【解决方案1】:

    StandardAnalyzer 只为输入文本创建标记 button,因此,只有 button 的查询与文档匹配。 要搜索按钮的任何子字符串,您有两种选择。

    在搜索时,您可以使用不同的查询,例如PrefixQueryWildcardQuery。如果使用查询解析器,可以使用butto?butto*

    在索引时,您可以使用不同的分析器,将子字符串作为标记发出,例如EdgeNGramTokenizer,它将根据配置发出[bu, but, butt, butto, button];或NGramTokenizer,它将针对配置的大小发出[bu, ut, tt, to, on] 等等。

    【讨论】:

      猜你喜欢
      • 2015-09-21
      • 2021-05-09
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多