elasticsearch 的filter cache (search 技术的冰山一角)
当你发了一个query, 例如 select * from t where a=1; 那么他就会在a 这个field 上创建一个bitmap 的filter cache 用于记录a 这个field 的值是否为1, es 会维护这个cache, 对于符合a=1的document, bit 位会被设为1。 否则设为0.
如何使用filter cache:
仅仅使用filterd 的请求才能使用 filter cache.
ES 使用DSL 来发请求。 但search api 使用的是一个query, 而不是filter, 所以如果想使用filter, DSL 的请求应该是:
GET /my_store/products/_search
{
"query" : {
"filtered" : {
"filter" : {
"term" : {
"price" : 20
}
}
}
}
}

浙公网安备 33010602011771号