在Elasticsearch中缓存查询

时间:2018-07-17 03:54:40

标签: elasticsearch caching

我想对具有100k条目的数据集执行搜索。我正在使用elasticsearch,以下是我的查询:

{
  'query': {
    'bool': {
      'filter': {
        'bool': {
          'must': [
            {
              'term': {
                'is_profiled': true
              }
            },
            {
              'range': {
                'profile_completion': {
                  'gte': '37'
                }
              }
            },
            {
              'bool': {
                'should': [
                  {
                    'geo_distance': {
                      'distance': '70km',
                      'address.place.location': '12.9715987, 77.5945627'
                    }
                  }
                ]
              }
            }
          ],
          'must_not': [
            {
              'exists': {
                'field': 'is_staffing_employee'
              }
            }
          ],
          'should': {
            'match_phrase': {
              'functional_areas.name': 'Sales / Business Development'
            }
          }
        }
      }
    }
  },
  '_source': false,
  'size': 1000
}

现在,此查询要花费很多时间(在某些情况下,大约需要10秒)。我想知道是否有一种方法可以通过缓存查询组件(某些查询中的静态组件)来加快速度。我了解了Elasticsearch中的缓存(节点查询缓存,分片请求缓存等),但似乎都在缓存结果(即发布),我的用例是只需要查询一次。任何人都可以在这里帮助我。

1 个答案:

答案 0 :(得分:0)

eagerly加载字段数据以将字段内容预加载到内存中怎么样?

这可确保在触发查询之前已填充内存缓存。

对于最新版本,您可以查看preloading data into file-system cache