[
https://issues.apache.org/jira/browse/LUCENE-10120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17440879#comment-17440879
]
Lu Xugang commented on LUCENE-10120:
------------------------------------
Hi, [~jpountz] [~gsmiller],
The Initial purpose doing this optimization was when our program want to use
PointRangeQuery only to collect numbers of docs, then TotalHitCountCollector
was used(cause this Collector's score mode is ScoreMode.COMPLETE_NO_SCORES, so
QueryCahce can be actived).
With the rule of UsageTrackingQueryCachingPolicy#shouldCache(Query query), same
PointRangeQuery will be cached after
UsageTrackingQueryCachingPolicy#frequency(Query query) equals 2, because
PointRangeQuery belongs to a costly query.
Then we found if we set a large range condition in PointRangeQuery, all docs in
a segment will be matched , and a huge FixBitSet which all bits were used will
be cached.
> Lazy initialize FixedBitSet in LRUQueryCache
> --------------------------------------------
>
> Key: LUCENE-10120
> URL: https://issues.apache.org/jira/browse/LUCENE-10120
> Project: Lucene - Core
> Issue Type: Improvement
> Components: core/search
> Affects Versions: main (10.0)
> Reporter: Lu Xugang
> Priority: Major
> Attachments: 1.png, LUCENE-10120.patch
>
> Time Spent: 4h 20m
> Remaining Estimate: 0h
>
> Basing on the implement of collecting docIds in DocsWithFieldSet, may be we
> could do similar way to cache docIdSet in
> *LRUQueryCache#cacheIntoBitSet(BulkScorer scorer, int maxDoc)* when docIdSet
> is density.
> In this way , we do not always init a huge FixedBitSet which sometime is not
> necessary when maxDoc is large
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]