2015-06-24 112 views
0

我在elasticsearch中使用top hits聚合。但是,當我向查詢添加一個過濾器時,它返回0次(預期行爲),然而聚合然後不匹配過濾器並返回非零文檔。我覺得聚合在與查詢相同的範圍內工作?似乎沒有這樣工作。有任何想法嗎?使用查詢過濾器進行範圍限定聚合

回答

1

您可能正在使用頂級filter而不是過濾的查詢。頂級過濾器被解釋爲post filter,並在執行查詢後執行,影響命中但不是方面。

如果你簡單地改變你的後置濾波器成filtered query中,彙總將正確計算上只有你的過濾器的結果。

{ 
    "query":{ 
     "filtered":{ 
     "filter": // your filter as before 
     } 
    }, 
    "aggs": // now they will be correctly calculated 
} 
+0

謝謝!聚集發生在過濾器之前還是之後? –

相關問題