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