如何使此三字母组合查询在elasticsearch中工作?

时间:2019-07-16 05:22:36

标签: elasticsearch trigram

我正在对某些地址数据进行匹配查询,其中街道名称被索引为Trigram,以启用非精确匹配。

例如,现在,当我搜索“ Berg”时,我会找到“ Am Berg”,“ Bergweg”,“ Bergstr”之类的匹配项。那些都很好。

但是我还会找到“ Rosenthaler Bergplatz”之类的匹配项,但我认为它们不是很好的匹配项,因为索引文档的三字组与搜索词的三字组不匹配。

我尝试使用最小值应匹配,但这似乎不起作用,因为它只能确保一定数量或比率的搜索词三元组与索引文档相匹配,而不能确保与之匹配。并且在上面的示例中,在每个匹配项中都找到了“ berg”的所有字母组合,因此,就minimum_should_match而言,所有字母都被认为是100%匹配项。

有什么主意可以避免像“ Rosenthaler Bergplatz”这样的比赛吗?我不需要完整的解决方案,我很乐意知道Elasticsearch中的机制或工具,可以帮助解决这一问题并自己制定细节。

提前谢谢!

致谢 马里奥

0 个答案:

没有答案