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

2017-12-08 12:45:05 +08:00
 alwayshere

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 版本???

1353 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/413077

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX