过去几天我一直在研究soundex,metaphone和其他字符串搜索技术,据我所知,这两种算法在处理音译到英语的非英语单词时效果很好。
然而,我的要求是这种搜索以原始的,非音译语言工作,包括德语,挪威语甚至Cyrilic字母表等字母。
是否有任何搜索算法能够完全处理这些字母?或者我最好使用第三方全文搜索库,如Lucene?因此,问题就变成了“Lucene是否处理非英文字母?”
答案 0 :(得分:15)
我不是这方面的专家,但你的要求对我来说似乎很难。 Soundex专为英语声音和角色而设计。我认为它对非英语语言表现不佳。例如,请参阅对this related question的回复。
Double-Metaphone尝试处理比Soundex或Metaphone更复杂的变体,旨在处理各种语言的不规则性。它可能足以满足您的需求。链接页面上有一个库实现列表。
Lucene中对其他语言的支持基于Analyzers的概念。 Lucene附带了一套针对不同语言的分析器(虽然我找不到默认列表),但质量可能是quite variable。
答案 1 :(得分:0)
维基百科上有一些很好的参考资料,从Soundex文章开始。我不知道是否有现有的库可以处理如此多种语言。