May mắn thay, ES cung cấp hai loại bộ lọc để bạn có thể làm việc với:
{
"query" : {
"field" : { "title" : "Catch-22" }
},
"filter" : {
"term" : { "year" : 1961 }
}
}
{
"query": {
"filtered" : {
"query" : {
"field" : { "title" : "Catch-22" }
},
"filter" : {
"term" : { "year" : 1961 }
}
}
}
}
Trong trường hợp đầu tiên, bộ lọc được áp dụng cho tất cả các tài liệu được tìm thấy bởi các truy vấn. Trong trường hợp thứ hai, các tài liệu được lọc trước khi truy vấn chạy. Điều này mang lại hiệu suất tốt hơn.
Trích dẫn từ: http://www.packtpub.com/elasticsearch-server-for-fast-scalable-flexible-search-solution/book
Giới thiệu về bộ nhớ cache, tôi không chắc về cơ chế bộ lọc cache. Dự đoán của tôi sẽ là: Trường hợp đầu tiên, vì bộ lọc chống lại tập hợp các kết quả được truy vấn trả về, bộ nhớ cache là loại cụ thể cho bộ trả lại này. Trường hợp thứ hai, bộ lọc được áp dụng trước, bộ nhớ cache được lưu trữ cho các chỉ mục bạn đã kiểm tra, do đó, bộ nhớ cache này có thể sử dụng lại nhiều hơn vì không dựa vào nội dung của truy vấn, nhưng chi phí bộ nhớ lớn hơn và thời gian truy vấn đầu tiên thời gian (trước khi bộ nhớ cache được tạo).
Nguồn
2013-07-20 19:10:53