Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 重要术语导致断路异常_Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Circuit Breaker - Fatal编程技术网 elasticsearch,circuit-breaker,Search,elasticsearch,Circuit Breaker" /> elasticsearch,circuit-breaker,Search,elasticsearch,Circuit Breaker" />

Search 重要术语导致断路异常

Search 重要术语导致断路异常,search,elasticsearch,circuit-breaker,Search,elasticsearch,Circuit Breaker,我有一个中等大小的elasticsearch索引(1.46T或~1e8文档)。它运行在4台服务器上,每台服务器都有64GB的Ram,在elastic和OS之间平均分配(用于缓存) 我想尝试新的“重要术语”聚合,因此我启动了以下查询 { "query": { "ids": { "type": "document", "values": [ &quo

我有一个中等大小的elasticsearch索引(1.46T或~1e8文档)。它运行在4台服务器上,每台服务器都有64GB的Ram,在elastic和OS之间平均分配(用于缓存)

我想尝试新的“重要术语”聚合,因此我启动了以下查询

{
  "query": {
    "ids": {
      "type": "document",
      "values": [
        "xCN4T1ABZRSj6lsB3p2IMTffv9-4ztzn1R11P_NwTTc"
      ]
    }
  },
  "aggregations": {
    "Keywords": {
      "significant_terms": {
        "field": "Body"
      }
    }
  },
  "size": 0
}
它应该将指定的文档正文与索引的其余部分进行比较,并找到索引中不常见的对文档有意义的术语

不幸的是,这总是导致

ElasticsearchException[org.elasticsearch.common.breaker.CircuitBreakingException:数据太大,数据将超过[25741911654]字节的限制]

嵌套:取消选中DexecutionException[org.elasticsearch.common.breaker.CircuitBreakingException:数据太大,数据将超过[25741911654]字节的限制]

嵌套:CircuitBreakingException[数据太大,数据将超过[25741911654]字节的限制]

一两分钟后,似乎暗示我没有足够的记忆力

讨论中的弹性服务器实际上是虚拟机,因此我关闭了其他虚拟机,并给每个弹性实例96GB,给每个操作系统96GB

出现了相同的问题(不同的数字,花费的时间更长)。我手头没有超过192GB的可用内存,所以不能再高了


聚合不是针对整个索引使用的吗?我在查询格式方面犯了错误吗?

此聚合的文档中有一条警告,关于在自由文本字段上使用RAM来创建非常大的索引。在大索引上,它适用于具有较小词汇表(例如hashtags)的较低基数字段,但许多自由文本术语和许多文档的组合会占用内存。您可以考虑在加载FieldData缓存时为Body字段指定一个过滤器,以修剪低频术语的长尾(例如,doc frequency感谢提示re:filtering,您是对的,我错过了该警告)。