我对查询处理的理解是否正确?Solr过滤器如何实际执行?
- 得到缓存或第一过滤查询文档集将创建实施OpenBitSet或SortedVIntSet的,并将它缓存
- 获取文档集从高速缓存或所有其他过滤器创建自己的执行DocBitSet的,它会与相交原始(这段代码的效率取决于DocSet的实施第一次执行)
- 我们使用Lucene过滤器+查询搜索(effici)使用MainQuery和最终DocSet进行跳跃(在所有交集之后)这ency是依赖于第一文档集实施)
- 我们采用后置滤波器(成本> 100 & &缓存==假)作为一部开拓创新的查询
这样的结果表现将依赖于AND第一个筛选器因为对于小查询SortedIntSet更有效,对于大BitSet更好。 我正确吗?
问题第二部分: 文档集有两个主要的实现 - HashDocSet和SortedIntDoc,在所有情况下,每个路口实现循环在第一过滤器,并检查它也是第二文档集......这意味着我们必须排序按尺寸过滤,最小为先。 是否可以控制缓存过滤器的顺序(成本只适用于非缓存过滤器)?