通过 ID 查询翻转别名的 Elastic GET 失败,并显示““别名 [...] 有多个与其关联的索引...”

Lar*_*s P 5 alias rollover elasticsearch

我们的新展期指数刚刚展期。现在这个查询...

GET http://my.elastic/system-logs/_doc/7e8017d8-0cb8-4b9e-b021-b2a4b4ac71c7

...失败了:

"Alias [system-logs] has more than one indices associated with it [[system-logs-000002, system-logs-000001]], can't execute a single index op"

但做同样的事情_search效果很好:

GET http://my.elastic/system-logs/_search/
{
    "query": {
        "bool": {
            "must": [{"term": {"_id": "a1906f52-3957-4f4b-9b40-531422e3a04e"}}]
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

异常来自这段代码,看起来有一个allowAliasesToMultipleIndices设置,但我一直找不到设置它的地方。

我们使用的是 Elastic 6.8。

Gib*_*bbs 5

在第一个中http request,您只是试图在索引上查找具有特定 id 的文档,而该索引又是多个索引的别名。

那就是问题所在。

原因:

_doc是elasticsearch中的一种映射类型。它用于分隔同一索引中的文档。因此它无法检查索引。它已被弃用。参考一下这也

并且您需要将GET请求与允许的查询一起使用[就像您的第二个示例] (term, terms, match, query_string, simple_query_string). 参考