使用数字过滤单词并使用 Lucene 检索 2-gram 和 1-gram

Filtering words with numbers and retrieving 2-grams and 1-grams with Lucene

我正在尝试使用 Lucene (5.5.0) 进行一些字符串标记化(无索引)。 我需要:

  1. 完全删除包含数字的单词,例如像 log4j 这样的单词应该从字符串中删除
  2. 我想将我的字符串拆分为一个单词术语和 2-Grams 术语,例如:"tie a yellow ribbon" 应标记为以下术语:"tie"、"yellow"、"ribbon"、"yellow ribbon"。请注意 "tie yellow" 不是一个术语,因为它在中间有一个停用词

这些可能与 Lucene 相关吗?如果有怎么办?

到目前为止我做了什么:

提前致谢

关于要求 1:我不知道开箱即用的任何东西。 NumericPayloadTokenFilter 绝对 不是您需要的。您可能需要创建自己的令牌过滤器来执行此操作。

关于要求 2:用 Lucene 的说法,NGrams 通常是基于字符的。你要的是ShingleFilter,它组合了token。它将在停用词处创建带​​状疱疹,例如:tie __ yellow,其中 _ 是通用填充标记。