gpt4 book ai didi

elasticsearch - _id的ElasticSearch跨集群GET

转载 作者:行者123 更新时间:2023-12-03 01:31:10 24 4
gpt4 key购买 nike

我有3个ElasticSearch 6.3.2集群:主集群,东集群和西集群。 “main”配置为在东西方进行跨集群搜索。这可以很好地工作,因为我可以执行POST查询来查询main并从所有3个集群中获取数据。但是,我很难对来自main的远程集群执行一些GET查询。例如:

http://esmain.example.com:9200/west:error-2019.04/_search

产生点击;一个记录的“M2ywYGoBhIcw2VqxQ9FD”的 _id

如果我尝试通过GET查询此记录,如下所示:

http://esmain.example.com:9200/west:error-2019.04/error/M2ywYGoBhIcw2VqxQ9FD

我得到:

{
error: {
root_cause: [
{
type: "index_not_found_exception",
reason: "no such index",
resource.type: "index_expression",
resource.id: "west:error-2019.04",
index_uuid: "_na_",
index: "west:error-2019.04"
}
],
type: "index_not_found_exception",
reason: "no such index",
resource.type: "index_expression",
resource.id: "west:error-2019.04",
index_uuid: "_na_",
index: "west:error-2019.04"
},
status: 404
}

如果我通过对 http://esmain.example.com:9200/west:error-2019.04/_search?ignore_unavailable=true&size=1&timeout=300000ms的POST执行相同的查询

用这个 body :
{
"query": {
"bool": {
"must":
{ "match": { "_id": "M2ywYGoBhIcw2VqxQ9FD" } }
}
}
}

我得到正确的记录,没有错误。可以通过GET没问题(即 http://esmain.example.com:9200/error-2019.04/error/rf2P2mkBIndI5iSJGgRd)查询位于主群集上的记录,因此,我很确定我的文档类型和语法正确。

尽管POST是一种变通方法,但我希望能够为开发人员提供易于使用的URL,而不是POST正文,因为它使开发人员更容易找到错误记录。

最佳答案

跨集群搜索仅用于发送搜索查询(即在_search端点上),而不是发送GET或DELETE(按ID)查询,这些查询仍必须直接在相应的集群上执行。

您可以做的一件事就是为您的开发人员提供一种更轻松的无主体搜索查询,例如以下查询,该查询可以实现与带有主体的POST完全相同的目的:

GET http://esmain.example.com:9200/west:error-2019.04/_search?q=_id:M2ywYGoBhIcw2VqxQ9FD

关于elasticsearch - _id的ElasticSearch跨集群GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55905280/

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