首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在弹性搜索中通过提供另一个路由密钥的数据的路由密钥进行搜索

在弹性搜索中通过提供另一个路由密钥的数据的路由密钥进行搜索
EN

Stack Overflow用户
提问于 2022-05-05 06:32:03
回答 1查看 141关注 0票数 0

当我通过路由密钥在弹性搜索中搜索时,它也返回另一个路由密钥的结果。

路径:索引2022/搜索?路由=10

代码语言:javascript
复制
{
    "from": 0,
    "size": 5000,
    "timeout": "15m",
    "query":
    {
        "bool":
        {
            "must":
            [
                {
                    "query_string":
                    {
                        "query": "*",
                        "fields":
                        [
                            "content^1.0"
                        ]
                    }
                }
            ]
        }
    }
}

我用路由密钥10搜索结果,但弹性给出了路由密钥3的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-05 06:47:21

路由密钥的目标仅仅是定义文档将存储在哪个碎片中。路由密钥被散列的值和结果是一个碎片索引。

如果您有1M文档和4个碎片,那么每个碎片都将包含大约250 K的文档。所有这些文档都可能有不同的路由键,但它们的散列总是解析为主碎片的数量(即0、1、2和3)。

因此,在您的示例中,具有路由键10和3的文档具有一个散列,它们都解析为相同的主碎片索引,这就是为什么在同一个碎片中找到它们的原因。

使用路由密钥进行搜索的想法是在较少的碎片中进行搜索。假设您有4个碎片,并且您知道搜索的路由密钥为10 (例如,它可以是租户id、客户id等),所以您指定了routing=10,然后搜索将只在单个碎片中进行,而不是对所有4个碎片进行搜索,这通常会产生更快的查询响应时间。

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

https://stackoverflow.com/questions/72122836

复制
相关文章

相似问题

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