V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alwayshere
V2EX  ›  程序员

ES6.0 中对"loading" : "eager"省去了,有没有替代的方案?

  •  
  •   alwayshere · 2017-12-08 12:45:05 +08:00 · 1349 次点击
    这是一个创建于 2341 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ES 第一次搜索很慢,后续就正常了,SO 上也有很多人反应这个问题: https://stackoverflow.com/questions/39610274/elasticsearch-first-query-is-slow-rest-of-them-are-fast ,大致看了下就是第一次 ES 要把数据全部加在到内存中,导致搜索很慢,解决方案就是加一个"loading" : "eager":

    PUT localhost:9200/newindex/
    {
      "mappings": {
        "items": {
          "properties": {
            "title": {
              "type": "string",
              "fielddata": {
                "loading" : "eager"
              }
            },
            "body": {
              "type": "string",
              "fielddata": {
                "loading" : "eager"
              }
            }
          } 
        }
      }
    }   
    

    老版的 ES 官方文档中也有提及: https://www.elastic.co/guide/en/elasticsearch/guide/current/preload-fielddata.html

    但是,新版的 ES 文档中则再也没有"loading" : "eager"这个选项了: https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html

    我尝试过加一个"loading" : "eager"在 fielddata 里面,但是 ES6.0 却报错无法将 fielddata 转换成布尔值,因为最新官方文档 fielddata 就是一个布尔值了

    于是我将 fielddata 设为 true,重新索引,第一次搜索还是很慢,后续就正常了,请问一下各位这该怎么解决,难道我要将 ES 降级为 2.X 版本???

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1385 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:40 · PVG 07:40 · LAX 16:40 · JFK 19:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.