You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2015/11/19 16:51:11 UTC

[jira] [Updated] (LUCENE-6901) Optimize 1D dimensional value indexing

     [ https://issues.apache.org/jira/browse/LUCENE-6901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael McCandless updated LUCENE-6901:
---------------------------------------
    Attachment: LUCENE-6901.patch

Patch, I think it's close, but there are a still a few nocommits.

I'll run performance tests ...

> Optimize 1D dimensional value indexing
> --------------------------------------
>
>                 Key: LUCENE-6901
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6901
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>             Fix For: Trunk
>
>         Attachments: LUCENE-6901.patch
>
>
> Dimensional values give a smaller index, and faster search times, for indexing ordered byte[] values across one or more dimensions, vs our existing approaches, but the indexing time is substantially slower.
> Since the 1D case is so important/common (numeric fields, range query) I think it's worth optimizing its indexing time.  It should also be possible to optimize the N > 1 dimensions case too, but it's more complex ... we can postpone that.
> So for the 1D case, I changed the merge method to do a merge sort (like postings) of the already sorted segments dimensional values, instead of simply re-indexing all values from the incoming segments, and this was a big speedup.
> I also changed from {{InPlaceMergeSorter}} to {{IntroSorter}} (this is what postings use, and it's faster but still safe) and this was another good speedup, which should also help the > 1D cases.
> Finally, I added a {{BKDReader.verify}} method (currently it's dark: NOT called) that walks the index and then check that every value in each leaf block does in fact fall within what the index expected/claimed.  This is useful for finding bugs!  Maybe we can cleanly fold it into {{CheckIndex}} somehow later.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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