It does recurse indeed! To reuse Mike's example, in that case the cache would consider caching: - A, - B, - C, - D, - (C D), - +A +B +(C D)
One weakness of this cache is that it doesn't consider caching subsets of boolean queries (except single clauses). E.g. in the above example, it would never consider caching +A +B even if the conjunction of these two clauses occurs in many queries. Le ven. 26 févr. 2021 à 20:03, Michael McCandless <[email protected]> a écrit : > Hi Haoyu, > > I'm pretty sure (but not certain!) that query cache is smart enough to > recurse through the full query tree, and consider any of the whole queries > it finds during that recursion. > > So e.g. a query like +A +B +(C D) would consider caching A, B, C D, or the > whole original +A +B +(C D) query. > > But I'm not sure! Hopefully someone who knows more about query cache > might chime in. > > Mike McCandless > > http://blog.mikemccandless.com > > > On Mon, Feb 22, 2021 at 8:55 PM Haoyu Zhai <[email protected]> wrote: > >> Hi folks, >> I'm trying to understand how QueryCache works and one question popped out >> of my head was that is QueryCache caching >> 1. the whole query that being submitted to IndexSearcher or >> 2. it will recurse into the query and selectively caching some of the >> clauses (especially for BooleanQuery)? >> >> From my observation it is the former case but I just want to double check >> in case I missed anything. >> >> Thanks >> Patrick >> >
