fq 的frange查询 为啥会快

fq的frange查询,网上很多原理,其实我觉得一直没有说到原理,fq的frange 查询的快的原因是,他第一次把对应的field的值全部加载到lucene的 fieldcache里面,范围条件的结果会保存到filtercache里面。如果 查询条件命中filtercache,就从filtercache去取,如果没有命中,所以的field的值都在fieldcache里面可以很容易的比较。

而fq 的范围查询 只是把查询的结果缓存到filtercache,没有命中继续走lucene的范围搜索搜索

你可能感兴趣的:(Lucene,filtercache,fq,frange)