elasticsearch - 通过滚动别名查询ID的弹性GET失败,出现 “”别名[…]具有多个与之相关的索引…”

标签 elasticsearch alias rollover

我们新的滚动指数刚刚滚动。现在这个查询...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 搜索中的映射类型。它用于分隔同一索引中的文档。因此,它无法检查索引。不推荐使用。 Referthis also
并且您需要对允许的查询使用GET请求[例如您的第二个示例] (term, terms, match, query_string, simple_query_string). Refer

关于elasticsearch - 通过滚动别名查询ID的弹性GET失败,出现 “”别名[…]具有多个与之相关的索引…”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62581672/

相关文章:

elasticsearch - 没有为 [..] 注册过滤器

azure - Azure Blob 存储是否支持用于引用位置或文件的别名?

CSS Sprite 悬停定位

javascript - jQuery Tooltip 图像翻转显示更大的图像

jquery - JQuery swapImage() 问题;

elasticsearch - Elasticsearch预处理,以将空字段删除为摄取的一部分

search - 如何将2个过滤器应用于ElasticSearch查询对象?

docker - 如何将elasticsearch模板与docker镜像捆绑在一起?

java - Xstream - 字符串数组

子查询的 MySQL 别名不起作用