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

Alan Woodward commented on LUCENE-7828:
---------------------------------------

I'm trying out a few ideas here; the one I think shows the most promise is to 
change IntersectVisitor.visit(int, byte[]) to take an array of docids.  This 
also opens up the possibility of speeding things up when a leaf only contains a 
few different values.

> Improve PointValues visitor calls when all docs in a leaf share a value
> -----------------------------------------------------------------------
>
>                 Key: LUCENE-7828
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7828
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Alan Woodward
>
> When all the docs in a leaf node have the same value, range queries can waste 
> a lot of processing if the node itself returns CELL_CROSSES_QUERY when 
> compare() is called, in effect performing the same calculation in visit(int, 
> byte[]) over and over again.  In the case I'm looking at (very low 
> cardinality indexed LongRange fields), this causes something of a perfect 
> storm for performance.  PointValues can detect up front if a given node has a 
> single value (because it's min value and max value will be equal), so this 
> case should be fairly simple to identify and shortcut.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to