Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
过去几天我一直在研究 soundex、metaphone 和其他字符串搜索技术,据我了解,这两种算法都可以很好地处理转译为英语的非英语单词。
然而,我的要求是让这种搜索在原始的、未音译的语言中工作,适应德语、挪威语甚至西里尔字母等字母。
是否有任何搜索算法能够完全处理这些字母?还是我最好使用第三方全文搜索库,例如 Lucene?因此,问题就变成了“Lucene 是否处理非英文字母?”
我不是这方面的专家,但你的要求对我来说似乎很困难。Soundex专为英语发音和字符而设计。我认为它对非英语语言表现不佳。例如,参见对此相关问题的回复。
Double-Metaphone是一种尝试处理比 Soundex 或 Metaphone 更复杂的变体,旨在处理一系列语言中的不规则性。它可能足以满足您的需求。链接页面上有一个库实现列表。
Lucene对其他语言的支持基于Analyzers的概念。Lucene 附带了一组针对不同语言的分析器(虽然我找不到默认的列表),但质量可能参差不齐。
维基百科上有一些很好的参考资料,从Soundex文章开始。我不知道是否有现有的库旨在处理如此广泛的语言。