我有许多用于我的文档的语言,并且遵循这样的模式:每种语言一个索引。因为他们建议在所有索引中搜索
/blogs-*/post/_count模式。就我的情况而言,我正在计算我有多少个文档的索引。我同时运行我的代码,所以同时发出许多请求。如果我搜索
/blogs-en/post/_count或者任何其他语言都没问题。但是如果我搜索
/blogs-*/post/_count 我很快就会遇到:
"Error 429 (Too Many Requests): [reduce] [type=reduce_search_phase_exception]
"有办法解决这个问题吗?无论我是否使用
/blogs-en/post/_count or /blogs-*/post/_count. 我一直在代码中使用相同数量的工作人员,但是重新排列索引,使每种语言都有一个索引,突然破坏了我的代码。
编辑:它是一个全新的索引,没有任何文档,当我启动程序,当我得到错误,我有大约5,000个文件,所以没有任何沉重的负担。
编辑:我正在使用上面引用的链接中找到的映射,并在本地机器上运行,并使用ES...in、my、shards=5和replicas=1的所有默认值。
编辑:错误只出现在13-20个请求中,我知道ES可以处理更多的错误。搜索/blogs en/post/_count而不是/blogs*/post/_count,等等。可以轻松地处理数千没有错误。
另一个编辑:我已经删除了所有并发性,但在得到错误之前仍然只能访问40-50个请求。
发布于 2017-05-15 04:24:49
对于该请求,我没有发现一个错误,它会返回全部文档。
你的集群在负荷下吗?
无论如何,使用简单的聚合,您可以获得的hits.total中的总文档计数和count_per_index部分结果中的每个索引文档计数中的:
GET /blogs-*/post/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"count_per_index": {
"terms": {
"field": "_index"
}
}
}
}https://stackoverflow.com/questions/43971452
复制相似问题