您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Elastic search-search_analyzer与index_analyzer

Elastic search-search_analyzer与index_analyzer

通常在索引时间和查询时间您都具有类似的分析链。相似并不意味着完全相同,但是通常索引文档的方式反映了查询文档的方式。

ngrams示例非常合适,因为它是您在索引和查询时使用不同分析器的主要原因之一。

对于部分匹配,可以使用边缘ngram进行索引,以便“ elasticsearch”成为(使用mingram 3和maxgram 20):

“ ela”,“ elas”,“ elast”,“ elasti”,“ elastic”,“ elastics”,“ elasticse”,“ elasticsea”,“ elasticsear”,“ eleasticsearc”和“ elasticsearch”

现在查询创建的字段。如果查询“弹性”一词,则表示匹配,并且返回预期结果。给定索引后,我们基本上使部分匹配之上的我们称为完全匹配。也无需对查询应用ngram。如果这样做,我们将查询以下所有术语:

“ ela”,“ elas”,“ elast”,“ elasti”和“ elastic”

这将使查询方式更加复杂,并导致获得奇怪的结果。假设您在另一个文档的同一字段中为术语“经过”编制了索引。您将具有以下ngram:

“ ela”,“ elap”,“ elaps”,“ elapse”,“ elapsed”

如果您搜索“ elastic”并对查询进行ngram运算,则术语“ ela”也将与第二个文档匹配,因此即使没有任何术语包含完整的“ elastic”术语,您也会将其与第一个文档一起返回。在寻找。

我建议您看一下分析API,以使用不同的分析器及其不同的结果。

其他 2022/1/1 18:22:03 有415人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶