我想对具有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中的缓存(节点查询缓存,分片请求缓存等),但似乎都在缓存结果(即发布),我的用例是只需要查询一次。任何人都可以在这里帮助我。
答案 0 :(得分:0)
eagerly加载字段数据以将字段内容预加载到内存中怎么样?
这可确保在触发查询之前已填充内存缓存。
对于最新版本,您可以查看preloading data into file-system cache。