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 版本???
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.