过去几天我一直在研究 soundex、metaphone 和其他字符串搜索技术,据我所知,这两种算法在处理音译为英语的非英语单词时效果很好。
然而,我的要求是这样的搜索可以在原始的、未音译的语言中工作,容纳德语、挪威语甚至西里尔字母等字母表。
是否有任何搜索算法能够完全处理这些字母表?还是我最好使用 Lucene 等第三方全文搜索库?因此,问题就变成了“Lucene 是否处理非英语字母表?”
最佳答案
我不是这方面的专家,但你的要求对我来说似乎很难。 Soundex专为英语发音和字符而设计。我认为它对非英语语言的表现不会很好。例如,参见对 this related question 的回复.
Double-Metaphone是一种处理比 Soundex 或 Metaphone 复杂得多的变化的尝试,旨在处理一系列语言中的不规则性。它可能足以满足您的需求。链接页面上有一个库实现列表。
在 Lucene 中支持其他语言基于 Analyzers 的概念. Lucene自带了一套针对不同语言的分析器(虽然我找不到默认列表),但是质量可能是quite variable .
关于algorithm - 为非英语字符启用 soundex/metaphone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1419882/