我们新的滚动指数刚刚滚动。现在这个查询...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"}}]
}
}
}
异常来自this code,它似乎为此具有allowAliasesToMultipleIndices
设置,但是我无法找到设置它的地方。我们使用的是Elastic 6.8。
最佳答案
在第一个http request
中,您只是尝试在索引上查找具有特定ID的文档,而该索引又是多个索引的别名。
那就是问题所在。
原因:_doc
是 flex 搜索中的映射类型。它用于分隔同一索引中的文档。因此,它无法检查索引。不推荐使用。 Refer,this also
并且您需要对允许的查询使用GET
请求[例如您的第二个示例] (term, terms, match, query_string, simple_query_string).
Refer
关于elasticsearch - 通过滚动别名查询ID的弹性GET失败,出现 “”别名[…]具有多个与之相关的索引…”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62581672/