[
https://issues.apache.org/jira/browse/LUCENE-7246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Adrien Grand updated LUCENE-7246:
---------------------------------
Attachment: LUCENE-7246.patch
Here is a prototype that adds the logic to Weight rather than DISI.
> Can LRUQueryCache reuse DocIdSets that are created by some queries anyway?
> --------------------------------------------------------------------------
>
> Key: LUCENE-7246
> URL: https://issues.apache.org/jira/browse/LUCENE-7246
> Project: Lucene - Core
> Issue Type: Improvement
> Reporter: Adrien Grand
> Assignee: Adrien Grand
> Priority: Minor
> Attachments: LUCENE-7246.patch, LUCENE-7246.patch
>
>
> Some queries need to create a DocIdSet to work. This is for instance the case
> with TermsQuery, multi-term queries, point-in-set queries and point range
> queries. We cache them more aggressively because these queries need to
> evaluate all matches on a segment before they can return a Scorer. But this
> can also be dangerous: if there is little reuse, then we keep converting the
> doc id sets that these queries create to another DocIdSet.
> This worries me a bit eg. for point range queries: they made numeric ranges
> faster in practice so I would not like caching to make them appear slower
> than they are when caching is disabled.
> So I would like to somehow bring back the optimization that we had in 1.x
> with DocIdSet.isCacheable so that we do not need to convert DocIdSet
> instances when we could just reuse existing instances.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]