1. 背景
(1) 客户反映es查询只能返回10000个数据,而需求时返回1.9W个数据,因此需要设置对应索引的默认返回数index.max_result_window
(2) 给客户部署的服务以docker-compose启动,其配置文件docker-compose.yml文件如下,其中es版本为5.6.16
version: '2'
services:
aimind_mongodb:
image: mongo
container_name: aimind_mongodb
volumes:
- "/data/configdb/:/data/configdb"
- "/data/db/:/data/db"
restart: always
ports:
- "27017:27017"
aimind_mysql:
image: mysql
container_name: aimind_mysql
volumes:
- "/root/aimind/mysql/data:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: "test12345"
ports:
- "3306:3306"
aimind_redis:
image: redis
container_name: aimind_redis
command: redis-server --requirepass vagiahgi$$af
restart: always
environment:
MYSQL_ROOT_PASSWORD: "test"
ports:
- "6379:6379"
aimind_es_single:
image: elasticsearch:5.6
container_name: aimind_es_single
ports:
- "9300:9300"
- "9200:9200"
restart: always
environment:
- "discovery.type=single-node"
aimind_backend:
depends_on:
- aimind_es_single
- aimind_mongodb
image: registry.iflyresearch.com/aimind/aimind-backend:devlatest
command: java -jar /app.jar --spring.profiles.active=swagger,single
container_name: aimind_backend
environment:
- "SPRING_PROFILES_ACTIVE=swagger,single"
volumes:
- "/root/aimind/storage:/root/aimind/storage"
- "/var/run/docker.sock:/var/run/docker.sock"
- "/root/aimind/docker/docker:/bin/docker"
- "/root/aimind/aimind/application-single.yml:/home/aimind/application-single.yml"
- "/mnt/cephfs/aimind/:/mnt/cephfs/aimind/"
links:
- aimind_es_single
- aimind_mongodb
extra_hosts:
- "aimind-single:127.0.0.1"
- "aimind_es:127.0.0.1"
ports:
- "18080:8080"
restart: always
aimind_web:
depends_on:
- aimind_backend
image: registry.iflyresearch.com/aimind/aimind:devlatest
container_name: aimind_web
volumes:
- "/root/aimind/aimind/web/nginx.conf:/etc/nginx/nginx.conf"
links:
- aimind_backend
ports:
- "18000:80"
restart: always
2. 操作
(1) es提供通过请求的方式更改指定index的_settings信息,因此可通过如下命令对索引aimind_prod_storage设置默认最大返回数量
curl -XPUT localhost:9200/aimind_prod_storage/_settings -d '{"index.max_result_window":"100000"}'
(2) 查询设置后
curl -XGET localhost:9200/aimind_prod_storage/_settings
(3) 为了避免docker-compose down/up重启,导致es的数据丢失,因此可以将es的数据文件保存在宿主机上,通过挂载的方式进行,具体配置如下:
aimind_es_single:
image: elasticsearch:5.6
container_name: aimind_es_single
ports:
- "9300:9300"
- "9200:9200"
restart: always
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data:/usr/share/elasticsearch/data
environment:
- "discovery.type=single-node"