szczęście ES udostępnia dwa rodzaje filtrów, aby pracować z:
{
"query" : {
"field" : { "title" : "Catch-22" }
},
"filter" : {
"term" : { "year" : 1961 }
}
}
{
"query": {
"filtered" : {
"query" : {
"field" : { "title" : "Catch-22" }
},
"filter" : {
"term" : { "year" : 1961 }
}
}
}
}
w pierwszym przypadku, filtry są stosowane do wszystkich dokumentów znalezionych w zapytaniu. W drugim przypadku dokumenty są filtrowane przed uruchomieniem zapytania. Zapewnia to lepszą wydajność.
Cytat z: http://www.packtpub.com/elasticsearch-server-for-fast-scalable-flexible-search-solution/book
O pamięci podręcznej, nie jestem pewien mechanizm cache filtrów. Moje przypuszczenie to: Pierwszy przypadek, ponieważ filtr jest przeciwko zestawowi wyników zwróconych przez zapytanie, pamięć podręczna jest specyficzna dla tego zestawu powrotnego. Drugi przypadek, filtr zostanie zastosowany jako pierwszy, pamięć podręczna zostanie zapisana dla indeksów, które zostały sprawdzone, w związku z czym ta pamięć podręczna jest bardziej przydatna do ponownego użycia, ponieważ nie polega na zawartości zapytania, ale przy większym koszcie pamięci i czasie zapytań dla pierwszego czas (przed wygenerowaniem pamięci podręcznej).