设置参数 `node.name` 可以自定义 Elasticsearch 节点的名字。 此条 Tips 由 medcl 贡献。

ES首次查询速度很慢

Elasticsearch | 作者 ChiN | 发布于2020年12月24日 | 阅读数:4309

es版本号6.8.1,一台物理机部署了五个节点,每个节点的jvm内存设置成了31G,物理机内存大小为512G,索引大小130G,12亿条数据,第一次查询时间几十秒,后面就是毫秒级了,做了些预加载的设置(index.store.preload: ["nvd", "dvd", "tim", "doc", "dim"]),但好像不起作用,DSL语句:{
  "size": 0,
  "query": {
    "bool": {
      "filter": []
    }
  },
  "aggregations": {
    "STATION_ID": {
      "terms": {
        "field": "STATION_ID",
        "size": 1000,
        "missing": -999
      },
      "aggregations": {
        "STATION_NAME": {
          "terms": {
            "field": "STATION_NAME",
            "size": 1000,
            "missing": "#NULL"
          },
          "aggregations": {
            "8ffa06de": {
              "sum": {
                "field": "STATION_ID"
              }
            }
          }
        }
      }
    }
  }
}
本人刚接触es,原理还是不太懂,请大神帮忙解答一下该如何提高首次的查询速度。
已邀请:

JiangJibo - 喊我雷锋

赞同来自:

第一次要把那些用到的文件加载到文件缓存里,这样下次用到就能直接从缓存里读取了,ES的数据很大部分是不加载到JVM堆里的,所以第一次慢以后快是正常的

Kevin_Chow

赞同来自:

聚合数据的话, 可以用到分片缓存, 注意使用
官网URL+/guide/en/elasticsearch/reference/current/shard-request-cache.html

RuiLiu

赞同来自:

可以试试用execution_hint,把segment再merge一下

要回复问题请先登录注册