Алгоритм мета-телефона неправильное произношение совпадения?
У меня вопрос по алгоритму Metaphone/DoubleMetaphone. Я использую это в своем проекте и очень удивлен, увидев результаты, так как я знаю, что эти алгоритмы предназначены для сопоставления слов, которые звучат одинаково на английском языке. Я получаю те же мета-телефонные коды для этих слов:CATGOODGATECOTCOTT, то есть KT. Я не думаю, что они вообще похожи друг на друга. Если я ищу CAT в своей поисковой системе, я также получаю все оставшиеся упомянутые слова. Пожалуйста, дайте мне знать, ребята, что не так с моей реализацией.
Ниже мое определение анализатора и фонетические фильтры. Пожалуйста, предложите решение этой проблемы. Я не хочу, чтобы отображались нефонетические совпадающие слова. Еще одна путаница: если я ищу CAT, он дает мне и эту запись PL10 1QD, но токены метафонов для обоих разные. т.е. KT для CAT и PLKT для PL10 1QD
@AnalyzerDef(name = "WithWhitespaceTokenizerFactory", tokenizer = @TokenizerDef(factory = WhitespaceTokenizerFactory.class), filters = {
@TokenFilterDef(factory = LowerCaseFilterFactory.class),
@TokenFilterDef(factory = PhoneticFilterFactory.class, params = {
@Parameter(name = "encoder", value = "Metaphone"),
@Parameter(name = "maxCodeLength", value = "20"),
@Parameter(name = "inject", value = "true")
}),
})