[ https://issues.apache.org/jira/browse/LUCENE-7828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16012012#comment-16012012 ]
Adrien Grand commented on LUCENE-7828: -------------------------------------- Why does the node return {{CELL_CROSSES_QUERY}} if all values from the block match the range? It should return {{CELL_INSIDE_QUERY}} and then call {{visit(int docID)}} rather than {{void visit(int docID, byte[] packedValue)}}? > 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org