首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索中使用"search_after“搜索1M数据

弹性搜索中使用"search_after“搜索1M数据
EN

Stack Overflow用户
提问于 2017-06-26 13:04:13
回答 1查看 739关注 0票数 0

我已经在elasticsearch上上传了大约1TB的数据。因为我尝试了以下方法-

  1. 默认值为10000的"from+size“,但我想从100000搜索,因此我将index.max_result_window设置为100000。然后从100000和size=10搜索,但是它会导致堆大小满。
  2. 滚动API -使用更多的文件句柄来保持旧段的活力。因此,它再次消耗节点中配置的内存。
  3. search_after -我试着根据_uid对文档进行排序,但是它给了我后续的错误-

-

代码语言:javascript
复制
{
  "error": {
    "root_cause": [
      {
        "type": "circuit_breaking_exception",
        "reason": "[fielddata] Data too large, data for [_uid] would be    [13960098635/13gb], which is larger than the limit of [12027297792/11.2gb]",
        "bytes_wanted": 13960098635,
        "bytes_limit": 12027297792 
    }
  }
},

如何解决此错误,以及通过分页搜索大量数据的最有效方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-10-04 08:49:04

你撞到断路器了,因为现场数据很大。它比堆中分配的部分大。

请参阅此处的Elasticsearch文档:usage.html#circuit-breaker

根据您的搜索需求,您可以考虑增加堆大小,您可以更改断路器限制,以便在您的场景中不会触发。最好的解决方法可能是限制现场数据缓存的大小。

通过将此设置添加到config/elasticsearch.yml文件中,可以对字段数据设置上限(相对或绝对):

代码语言:javascript
复制
indices.fielddata.cache.size:  20% 

有关详细信息,请参阅:usage.html#fielddata-size

现在的答案是:FIELDDATA Data is too large

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44760471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档