如何提高Elasticsearch中的搜索速度(我的主要查询:术语查询和短语查询)?

时间:2019-05-22 17:03:27

标签: java elasticsearch

我大约有165G数据,并将其存储到三台Elasticsearch服务器中(每台服务器具有32G内存)。生成的索引(名为my_index)的总大小为240.3GB(198030346文档),其中约75GB用于索引。索引my_index具有三个主要分片,没有副本分片。

索引my_index具有两个字段(名称为field1field2),且两个字段具有相同的分析器。分析器按空间划分field1field2的内容。文件看起来像

{
  "field1": "AW110 AW111 AW112 AW113 AW1104 AW1103 AW11023 AW11012 AW1101 AW1102 AW1102 AW1101 AW11032 AW110 AW11032 AW11032",
  "field2": "BP111 BP111 BP111 BP111 BP111 BP1110 BP111s BP111s BP111a BP111as BP1117 BP1119 BP11100 BP11100 BP11100 BP11111 BP111009 BP11122"
}

我的主要查询是term查询和phrase query。例如,我要搜索所有包含术语AW111的文档,或者搜索所有包含短语AW110 AW111的文档。

我试图提高搜索速度:

  1. 我配置了swapping

    • vm.swappiness设置为1
    • 使安装 elasticsearch 的用户 hjs 可以无限制地增加锁定的内存大小。
hjs soft memlock unlimited
hjs hard memlock unlimited
- Enable `bootstrap.memory_lockedit` (set `bootstrap.memory_lock: true` in elasticsearch.yml)
其他配置
  • 文件描述符(/etc/security/limits.conf)
hjs soft nofile 65536
hjs hard nofile 65536
  • JVM(config / jvm.options)
-Xms5g
-Xmx5g
  • 虚拟内存edit(/etc/sysctl.conf)
vm.max_map_count=655360

此图显示了当我运行多个top时命令term search的结果。流程31283 elasticsearch

enter image description here

该图片用于显示集群状态:

enter image description here

我的问题: 当我执行term query搜索包含特定术语的文档时,可能有大量文档与该术语匹配。因此,当我搜索很多字词(通常是10,000-40,000,并且我使用了multi search + term query)时,这需要花费太多时间 有什么方面可以提高搜索速度吗?

0 个答案:

没有答案