lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dawid Weiss (Updated) (JIRA)" <>
Subject [jira] [Updated] (SOLR-2888) FSTSuggester refactoring: utf8 storage, external sorts (OOM prevention), code cleanups
Date Thu, 01 Dec 2011 10:01:41 GMT


Dawid Weiss updated SOLR-2888:

    Attachment: SOLR-2888.patch

Updated patch:
- updated to recent API refactorings in BytesRef,
- FSTCompletion doesn't use LookupResult directly (no intermediate Strings).

This is ready to be committed, two remaining TODOs (infix suggestions, use of Analyzers for
synonym suggestions, full support for float weights) will be split into separate issues.
> FSTSuggester refactoring: utf8 storage, external sorts (OOM prevention), code cleanups
> --------------------------------------------------------------------------------------
>                 Key: SOLR-2888
>                 URL:
>             Project: Solr
>          Issue Type: Improvement
>          Components: spellchecker
>            Reporter: Dawid Weiss
>            Assignee: Dawid Weiss
>             Fix For: 4.0
>         Attachments: SOLR-2888.patch, SOLR-2888.patch
> This issue incorporates several problems:
> - utf16 was used previously to store and lookup terms, now it is utf8
> - the construction would OOM with large number of terms because of the need to sort entries.
Sorter APIs have been added and an implementation of external (on-disk) sorting is also added
(Robert Muir).
> - the FSTLookup class has been split and refactored into FSTCompletion and FSTCompletionBuilder,
FSTCompletionLookup remains a facade connecting all the pieces and implements Lookup interface.
For large inputs use FSTCompletionBuilder directly (and pre-bucket your input weights).
> - Automatic bucketing in FSTCompletionLookup has been changed from linear min/max discretization
into dividing into  ranges after all values have been sorted. This empirically handles all
potential distributions quite well. If somebody needs something very specific, use FSTCompletionBuilder
directly (providing buckets), construct the automaton and then load it with FSTCompletionLookup.

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


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

View raw message