[ 
https://issues.apache.org/jira/browse/SOLR-2848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13134121#comment-13134121
 ] 

James Dyer commented on SOLR-2848:
----------------------------------

Robert,

I think your first suggestion (moving configuration and response formatting out 
of the *SolrSpellCheck) is desirable and doable, but I wanted to keep this 
issue focused on increasing test coverage and to make DirectSolrSpellChecker 
mirror what AbstractLuceneSpellChecker already does so that it can pass.

Obviously, if every SpellChecker plug-in implemented or extended something that 
had a "getStringDistance" or "getAccuracy" method then we wouldn't need to do 
instanceof and cast.  Once again, a big structural change like this seems 
inappropriate in a bug fix, especially as we are not introducing these checks 
for the first time.  This is a long-standing problem.

It looks to me like "internal levenshtein" is just a dummy class designed to 
technically meet the api requirements while not actually doing anything.  But 
SpellCheckComponent.finishStage() needs to be able to get the StringDistance 
impl that was used to generate suggestions during the first stage, then 
re-compute distances using its getDistance() method.  This is how it can know 
how to order the varying suggestions from multiple shards after-the-fact.  I 
see from the notes in DirectSpellChecker that using the "internal" 
StringDistance yields performance improvements over using a pluggable s.d.  I 
did not look enough to determine if "internal levenshtein" could be modified to 
re-compute these internally-generated distance calculations and be usable 
externally, without sacrificing the performance gain.  If possible, this would 
probably be our best bet, eliminating the Exception hack and any possible 
discrepancies using 2 different s.d. classes would cause.  Do you agree?
                
> DirectSolrSpellChecker fails in distributed environment
> -------------------------------------------------------
>
>                 Key: SOLR-2848
>                 URL: https://issues.apache.org/jira/browse/SOLR-2848
>             Project: Solr
>          Issue Type: Bug
>          Components: SolrCloud, spellchecker
>    Affects Versions: 4.0
>            Reporter: James Dyer
>            Priority: Minor
>             Fix For: 4.0
>
>         Attachments: SOLR-2848.patch
>
>
> While working on SOLR-2585, it was brought to my attention that 
> DirectSolrSpellChecker has no test coverage involving a distributed 
> environment.  Here I am adding a random element to 
> DistributedSpellCheckComponentTest to alternate between the "IndexBased" and 
> "Direct" spell checkers.  Doing so revealed bugs in using 
> DirectSolrSpellChecker in a distributed environment.  The fixes here roughly 
> mirror those made to the "IndexBased" spell checker with SOLR-2083.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

Reply via email to