15

过去几天我一直在研究 soundex、metaphone 和其他字符串搜索技术,据我了解,这两种算法都可以很好地处理转译为英语的非英语单词。

然而,我的要求是让这种搜索在原始的、未音译的语言中工作,适应德语、挪威语甚至西里尔字母等字母。

是否有任何搜索算法能够完全处理这些字母?还是我最好使用第三方全文搜索库,例如 Lucene?因此,问题就变成了“Lucene 是否处理非英文字母?”

4

2 回答 2

15

我不是这方面的专家,但你的要求对我来说似乎很困难。Soundex专为英语发音和字符而设计。我认为它对非英语语言表现不佳。例如,参见对此相关问题的回复。

Double-Metaphone是一种尝试处理比 Soundex 或 Metaphone 更复杂的变体,旨在处理一系列语言中的不规则性。它可能足以满足您的需求。链接页面上有一个库实现列表。

Lucene对其他语言的支持基于Analyzers的概念。Lucene 附带了一组针对不同语言的分析器(虽然我找不到默认的列表),但质量可能参差不齐

于 2009-09-14T07:02:25.800 回答
0

维基百科上有一些很好的参考资料,从Soundex文章开始。我不知道是否有现有的库旨在处理如此广泛的语言。

于 2009-09-14T06:46:11.050 回答