gpt4 book ai didi

elasticsearch - elasticsearch排序取决于请求命中的节点

转载 作者:行者123 更新时间:2023-12-02 23:53:08 25 4
gpt4 key购买 nike

我有3个节点的集群Elasticsearch 6.3.2:主节点和2个数据节点。我对索引进行请求,结果顺序可以处于三种不同的状态

如果我从kibana提出了一些要求:

  • GET index / _search?preference = node1-一种排序顺序
  • GET index / _search?preference = node2-另一个排序顺序
  • GET索引/ _搜索-可以是排序顺序
  • 的三种状态

    请求正文始终不变
    {
    "from": 0,
    "size": 30,
    "query": {...},
    "sort": [
    {"_score": {"order": "desc"}},
    {"_script": {
    "script": {
    "source": "long code = doc[\"test\"].value;
    if(code== 0){return 4;}
    if(code== 1){return 2;}
    if(code== 2){return 1;}
    else return code;",
    "lang": "painless"
    },
    "type": "string",
    "order": "desc"
    }
    },
    {"test1": {"order": "desc"}},
    {"test2": {"order": "asc"}}
    ]
    "highlight": {...}
    }

    我希望结果顺序始终是恒定的,但事实并非如此

    最佳答案

    这是一个已知问题,是由于bouncing results而发生的,可以通过始终为同一用户使用相同的分片来避免此问题,这可以通过将首选项参数设置为任意字符串(例如用户的 session ID)来完成。正如官方Elasticsearch文档中所建议的那样,我们也避免在生产中使用preference参数。

    关于elasticsearch - elasticsearch排序取决于请求命中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56172645/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com