我對查詢處理的理解是否正確?Solr過濾器如何實際執行?
- 得到緩存或第一過濾查詢文檔集將創建實施OpenBitSet或SortedVIntSet的,並將它緩存
- 獲取文檔集從高速緩存或所有其他過濾器創建自己的執行DocBitSet的,它會與相交原始(這段代碼的效率取決於DocSet的實施第一次執行)
- 我們使用Lucene過濾器+查詢搜索(effici)使用MainQuery和最終DocSet進行跳躍(在所有交集之後)這ency是依賴於第一文檔集實施)
- 我們採用後置濾波器(成本> 100 & &緩存==假)作爲一部開拓創新的查詢
這樣的結果表現將依賴於AND第一個篩選器因爲對於小查詢SortedIntSet更有效,對於大BitSet更好。 我正確嗎?
問題第二部分: 文檔集有兩個主要的實現 - HashDocSet和SortedIntDoc,在所有情況下,每個路口實現循環在第一過濾器,並檢查它也是第二文檔集......這意味着我們必須排序按尺寸過濾,最小爲先。 是否可以控制緩存過濾器的順序(成本只適用於非緩存過濾器)?