2013-05-15 65 views
1

Lucene如何支持通配符搜索?执行Lucene通配符搜索

我想搜索开始牛 我正在寻找的话与ox*但它也像回到了anti-oxide意外的结果的话 - 但我不希望它作为结果。

回答

0

根据Lucene FAQ您的查询ox*应该只匹配以ox开头的术语。

因为StandardTokenizer认为hyphen as a delimiter,像anti-oxide一个字拆成两个词 - antioxide,因此比赛anti-oxide当您搜索ox*

您有2个选项来改变这种行为:

  1. 改写默认标记生成器,写自己,以满足您的需求,您的文本替换/删除此类分隔符的
  2. 丑陋的预处理。这可能不是理想的解决方案
0

这与您的数据分析方式有关。 StandardAnalyzer将分隔空间和标点符号(在many other rules之间)。标准分析仪通常非常适合全文。如果它不适合您的特殊需求,many other analyzers可用。没有关于你打算完成什么的更多信息,我真的不能推荐一个特定的。