如何使用Lucene实现语音搜索?

时间:2016-07-26 20:53:37

标签: java lucene

我想使用Lucene 6.1.0实现语音搜索,使用Soundex或任何合适的葡萄牙语算法。我在互联网上发现了许多不完整的例子,教导了如何实现自定义标记器,分析器,但似乎这些例子中使用的抽象类在6.1.0版本中并不相同。任何人都可以指出我在哪里可以找到一个好的文档Lucene,而不仅仅是java文档而没有任何进一步的文档教学如何将这些东西放在一起?

提前致谢。

1 个答案:

答案 0 :(得分:6)

Analyzer documentation显示了如何创建分析器。

对于语音分析,您应该查看org.apache.lucene.analysis.phonetic包(您需要在构建路径中添加“lucene-analyzers-phonetic-6.1.0.jar”,以及Apache的“commons-” codec-1.10.jar“,你可以get here)。

然后您可以设置您的分析器,例如:

Analyzer analyzer = new Analyzer() {
    @Override
    protected TokenStreamComponents createComponents(String fieldName) {
        Tokenizer tokenizer = new StandardTokenizer();
        TokenStream stream = new DoubleMetaphoneFilter(tokenizer, 6, false);
        return new TokenStreamComponents(tokenizer, stream);
    }
};