You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Lu Xugang (Jira)" <ji...@apache.org> on 2021/11/01 10:32:00 UTC

[jira] [Comment Edited] (LUCENE-10120) Lazy initialize FixedBitSet in LRUQueryCache

    [ https://issues.apache.org/jira/browse/LUCENE-10120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17436737#comment-17436737 ] 

Lu Xugang edited comment on LUCENE-10120 at 11/1/21, 10:31 AM:
---------------------------------------------------------------

Hi, [~jpountz] , In the case of large numbers of document matched, During the collection process, if the doc id  is sequential and ordered from small to large. We only need to record the smallest and largest doc id, and use the method *DocIdSetIterator#range(int minDoc, int maxDoc)* currently provided in the source code to get a *DocIdSetIterator*.

During the collection process, if the doc id  is not sequential or ordered found , then using old way to create a new big size *FixedBitSet*, and initialize it with a range(*FixedBitSet#**set(int startIndex, int endIndex)**)* by  smallest and largest doc id currently collected .


was (Author: chrislu):
Hi, [~jpountz] , In the case of large numbers of document matched, During the collection process, if the doc id  is sequential and ordered from small to large. We only need to record the smallest and largest doc id, and use the method *DocIdSetIterator#range(int minDoc, int maxDoc)* currently provided in the source code to get a DocIdSetIterator.

During the collection process, if the doc id  is not sequential or ordered found , then using old way to create a new big size FixedBitSet, and initialize it with a range(*FixedBitSet#**set(int startIndex, int endIndex)**)* by  smallest and largest doc id currently collected .

> 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 (9.0)
>            Reporter: Lu Xugang
>            Priority: Major
>         Attachments: 1.png
>
>
> 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.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org