lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Muir (JIRA)" <>
Subject [jira] [Commented] (LUCENE-4819) move Sorted[Set]DocValuesTermsEnum to codec
Date Mon, 11 Mar 2013 16:25:18 GMT


Robert Muir commented on LUCENE-4819:

I see my bug:

    public SeekStatus seekCeil(BytesRef text, boolean useCache) throws IOException {
      if (in.seekCeil(text) == null) {
        return SeekStatus.NOT_FOUND; /* <-- bug: This should be SeekStatus.END */
      } else if (term().equals(text)) {
        // TODO: add SeekStatus to FSTEnum like in
        // to remove this comparision?
        return SeekStatus.FOUND;
      } else {
        return SeekStatus.NOT_FOUND;
> move Sorted[Set]DocValuesTermsEnum to codec
> -------------------------------------------
>                 Key: LUCENE-4819
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: core/index
>            Reporter: Robert Muir
>             Fix For: 5.0, 4.3
>         Attachments: LUCENE-4819.patch
> Currently a user can instantiate a SortedDocValuesTermsEnum(SortedDocValues). 
> This is a generic termsenum, implementing all operations by lookupOrd().
> I think instead this should be the default implementation, and we should have e.g. SortedDocValues.termsEnum()
that returns it (codec can implement something fancier).
> For example the default codec implements lookupOrd as an FST binary search, which means
next() on this termsenum is much slower than it needs to be for the places where this enum
is actually used (segment merging, OrdinalMap used for faceting in SOLR-4490 and LUCENE-4795)

> So instead, it can override this method and use an FSTEnum, and these operations are
significantly faster (3x faster for me with a simple benchmark with 10M terms).

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message