首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch模糊查询- max_expansions

Elasticsearch模糊查询- max_expansions
EN

Stack Overflow用户
提问于 2018-04-26 02:23:22
回答 1查看 5.1K关注 0票数 4

我正在使用elasticsearch 5+,我使用模糊进行了一些查询。我了解以下模糊参数:

模糊性,prefix_length.

但是,我不能理解"max_expansions",我读了很多文章,但这对我来说很难,因为有很多关于它的例子。

你能用例子解释一下这个参数吗?它是如何与模糊参数一起工作的?

编写一个示例:我执行了以下查询:

代码语言:javascript
复制
GET my-index/my-type/_search
{
  "query": {
    "fuzzy": {
      "my-field": {
        "value": "house",
        "fuzziness": 1,
        "prefix_length": 0,
        "max_expansions": 1
      }
    }
  }
}

我有4个碎片,我的查询找到了6个结果,因为在" my -field“中有6个带有"hous”的文档。如果max_expansions类似于数据库中的限制,那么最大结果应该是4(因为我有4个碎片)?为什么要返回6个结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-26 11:19:38

引用Elasticsearch博客文章的话

max_expansions设置定义了模糊查询在停止搜索之前匹配的最大术语数,也会对模糊查询的性能产生巨大影响。但是,减少查询条件会产生负面影响,因为由于查询的提前结束,可能找不到一些有效的结果。重要的是要理解max_expansions查询限制在碎片级别上工作,这意味着即使设置为1,多个术语也可能匹配,所有这些都来自不同的碎片。这种行为可能会使max_expansions看起来似乎不起作用,所以请注意,返回的唯一项计数并不是确定max_expansions是否有效的有效方法。

从根本上说,这意味着当弹性搜索触发模糊查询时,在一个步骤中,它将搜索中考虑的术语数限制在max_expansions上。在编写时,它并不像数据库中的limit那样明显,因为在这里,在Elasticsearch中,它正在处理碎片。可能会有更多的预期结果,您将只在本地设置Elasticsearch,并测试其行为。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50033895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档