You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Ignacio Vera (Jira)" <ji...@apache.org> on 2022/02/08 11:44:00 UTC

[jira] [Comment Edited] (LUCENE-10378) Implement Weight#count on PointRangeQuery

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

Ignacio Vera edited comment on LUCENE-10378 at 2/8/22, 11:43 AM:
-----------------------------------------------------------------

Hi Gautam!

Thanks for the PR but you are right, I think the idea from Adrien is to avoid visiting nodes when we know that it is inside our query. In that case you can call directly PointTree#size to compute the number of points/documents to be added to the final result.

I think you can start with implementing the following function in PointValues:
{code:java}
/**
 * Finds the number of points matching the provided conditions. This method does not enforce live
 * documents, therefore it should only be used when there are no deleted documents.
 */
public final long pointCount(BiFunction<byte[], byte[], Relation> nodeComparator, Predicate<byte[]> leafComparator) throws IOException;{code}
This is the function you want to call when you know the number of points is equal to the number of values. 

 

 


was (Author: ivera):
Hi Gautam!

Thanks for the PR but you are right, I think the idea from Adrien is to avoid visiting nodes when we know that it is inside our query. In that case you can call directly PointTree#size to compute the number of points/documents to be added to the final result.

I think you can start with implementing the following function in PointValues:
{code:java}
/**
 * Finds the number of points matching the provided conditions. This method does not enforce live
 * documents, therefore it should only be used when there are no deleted documents.
 */
public final long pointCount(BiFunction<byte[], byte[], Relation> comparator, Predicate<byte[]> leafComparator) throws IOException;{code}
This is the function you want to call when you know the number of points is equal to the number of values. 

 

 

> Implement Weight#count on PointRangeQuery
> -----------------------------------------
>
>                 Key: LUCENE-10378
>                 URL: https://issues.apache.org/jira/browse/LUCENE-10378
>             Project: Lucene - Core
>          Issue Type: Task
>            Reporter: Adrien Grand
>            Priority: Minor
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When there are no deletions and the field is single-valued (docCount == size) and has a single-dimension, PointRangeQuery could implement {{Weight#count}} by only counting matches on the two leaves that cross with the query.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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