lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <>
Subject [jira] [Updated] (LUCENE-4481) AnalyzingSuggester may fail to return correct topN suggestions
Date Sat, 20 Oct 2012 11:04:12 GMT


Michael McCandless updated LUCENE-4481:

    Attachment: LUCENE-4481.patch

OK this is the optimizations patch ... I added maxQueueDepth to TopNSearcher and passed appropriate
values from WFSTCompletionLookup and AnalyzingSuggester.

I also fixed AnalyzingSuggester store/load to save the maxAnalyzedPathsForOneInput ... but
in general these methods make me nervous: how come they don't take Directory or DataInput/Output
like our other store APIs, they don't seem well tested, they don't write a header (I know
we don't promise back-compat here but it'd at least be nice to get a clear exc)...
> AnalyzingSuggester may fail to return correct topN suggestions
> --------------------------------------------------------------
>                 Key: LUCENE-4481
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>             Fix For: 4.1, 5.0
>         Attachments: LUCENE-4481.patch, LUCENE-4481.patch, LUCENE-4481.patch, LUCENE-4481.patch,
> I hit this when working on LUCENE-4480.
> Because AnalyzingSuggester may prune some of the topN paths found by FST's Util.TopNSearcher,
this means the queue size limit of topN makes the overall search inadmissible, ie it may incorrectly
prune paths that would have lead to a competitive path.
> However, such pruning is rare: it happens only for graph token streams, and even then
only when competitive analyzed forms share the same surface forms.
> The simplest way to fix this is to make the queue unbounded but this is likely a sizable
performance hit ... I haven't tested yet.  It's even possible the way the dups happen (always
at the "end" of the suggestion, because we tack on 0 byte followed by ord dedup byte) prevent
this bug from even occurring and so this could all be a false alarm!  I have to try to make
a test case showing it ...
> A cop-out solution would be to expose a separate queueSize or queueMultiplier (over the
topN) so that if users are affected by this they could crank up the queue size or multiplier.

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