Elasticsearch:数据太大,[_uid]的数据大于[1267571097 / 1.1gb]]

时间:2017-04-28 16:13:15

标签: python elasticsearch lucene

我试图查询elasticsearch以检索在其文档中获得关键字#test的某些文档。 all_hateful_ids是一个id列表。当我将此查询发送到elasticsearch时,我收到了以下错误。

query = {
  "size": 100,
  "_source": "text",
  "query": {
    "function_score": {
      "query": {
        "bool": {
            "filter": [
                {"terms": {"id_tweet_creator": all_hateful_ids}}
            ],
          "should": [
            {"match": {
              "text": "#test"
            }}
          ],
          "must_not": [
            {"exists": {"field": "retweeted_status"}}
          ]
        }
      },
      "functions": [
        {
          "random_score": {}
        }
      ]
    }
  }
}


elasticsearch.exceptions.TransportError: TransportError(500, 'search_phase_execution_exception', 'java.util.concurrent.ExecutionException: CircuitBreakingException[[fielddata] Data too large, data for [_uid] would be larger than limit of [1267571097/1.1gb]]')

问题是,如果我删除过滤器密钥,那么我的查询就会得到解答。为什么?过滤器应该减少数据量,所以没有办法比我的elasticsearch没有足够的内存来处理没有过滤器字段但是过滤器存在内存问题。我怎么解决这个问题?

0 个答案:

没有答案