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

David Smiley updated SOLR-2762:
-------------------------------

    Attachment: SOLR-2762_FSTLookup_off_by_one.patch

The bug is that the "if (exactMatchFirst) {" condition fails to consider the 
fact that an exact match is already in the results. As I was fooling around 
with my data, it was usually already there.

I added code to check to see if the key is already present and if so to shift 
it to the top. I also made a trivial change to the existing code you wrote that 
was in this condition that changed the order of shrinking the result array 
before inserting a new LookupResult into the first position. This will avoid 
ArrayList needlessly growing its array.  As an aside, it's not clear to me why 
you did a min(10,num) when initializing the ArrayList capacity.

I have to admit that this code seems overall tricky to test due to all the 
branch conditions.  And this method probably has a high cyclomatic complexity. 
It would be nice to move the "if (exactMatchFirst) {" branch outside the loops. 
At a glance it seems doable but then I noticed 
getExactMatchStartingFromRootArc(i,key) took the loop index 'i' and I'm not 
sure what the implications are there.

> FSTLookup returns one less suggestion than it should when onlyMorePopular=true
> ------------------------------------------------------------------------------
>
>                 Key: SOLR-2762
>                 URL: https://issues.apache.org/jira/browse/SOLR-2762
>             Project: Solr
>          Issue Type: Bug
>          Components: spellchecker
>    Affects Versions: 3.3
>            Reporter: David Smiley
>            Assignee: Dawid Weiss
>            Priority: Minor
>         Attachments: SOLR-2762_FSTLookup_off_by_one.patch
>
>
> I'm using the Suggester.  When I switched from TSTLookup to FSTLookup, I 
> noticed that it returned one fewer suggestion than what I asked for. I have 
> spellcheck.onlyMorePopular=true; when I set it to false, I see the correct 
> count. Another aspect of the bug is that this off-by-one bug only seems to 
> occur when my suggestion has an exact match.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to