首页 > 解决方案 > match_phrase 对连接字段的查询——避免错误匹配

问题描述

我索引了一个相当复杂的文档,它没有在模板中定义所有字段(它们是自动创建的)。我还填充了一个字段,该字段是连接文档中由空格分隔的所有字符串字段的结果(在加载之前),除了一些特定字段。该字段用作“整个文档”搜索字段,并使用子字段以几种不同的方式进行索引。

在大多数情况下,它运行良好,除了我注意到我有时会在短语查询中得到“错误”匹配,其中一个短语匹配一个字段的结尾和另一个字段的开头,因为它们被连接起来是一种使这成为可能的方式。

为了防止这种情况发生,我正在考虑用一个虚拟词(如 MYSEP)将连接中的所有字段分开,然后将该词设为索引中的停用词,但不在查询中。那时永远不会发生匹配。然而,必须维护不同的停用词列表和不同的索引/查询分析器是一件痛苦的事情,所以我想知道是否有更简单的方法来实现相同的目标。

有没有办法告诉 ElasticSearch 短语匹配不应该跨越由字符串中的某个单词或字符定义的某个边界?

标签: elasticsearchstop-wordsfull-text-indexing

解决方案


推荐阅读