Re: using DirectSpellChecker and FileBasedSpellChecker with Solr 4.10.1

2015-04-16 Thread elisabeth benoit
For the records, what I finally did is place those words I want spellcheck
to ignore in spellcheck.collateParam.fq and the words I'd like to be
checked in spellcheck.q. collationQuery uses spellcheck.collateParam.fq so
all did_you_mean queries return results containing words in
spellcheck.collateParam.fq.

Best regards,
Elisabeth



2015-04-14 17:05 GMT+02:00 elisabeth benoit :

> Thanks for your answer!
>
> I didn't realize this what not supposed to be done (conjunction of
> DirectSolrSpellChecker and FileBasedSpellChecker). I got this idea in the
> mailing list while searching for a solution to get a list of words to
> ignore for the DirectSolrSpellChecker.
>
> Well well well, I'll try removing the check and see what happens. I'm not
> a java programmer, but if I can find a simple solution I'll let you know.
>
> Thanks again,
> Elisabeth
>
> 2015-04-14 16:29 GMT+02:00 Dyer, James :
>
>> Elisabeth,
>>
>> Currently ConjunctionSolrSpellChecker only supports adding
>> WordBreakSolrSpellchecker to IndexBased- FileBased- or
>> DirectSolrSpellChecker.  In the future, it would be great if it could
>> handle other Spell Checker combinations.  For instance, if you had a
>> (e)dismax query that searches multiple fields, to have a separate
>> spellchecker for each of them.
>>
>> But CSSC is not hardened for this more general usage, as hinted in the
>> API doc.  The check done to ensure all spellcheckers use the same
>> stringdistance object, I believe, is a safeguard against using this class
>> for functionality it is not able to correctly support.  It looks to me that
>> SOLR-6271 was opened to fix the bug in that it is comparing references on
>> the stringdistance.  This is not a problem with WBSSC because this one does
>> not support string distance at all.
>>
>> What you're hoping for, however, is that the requirement for the string
>> distances be the same to be removed entirely.  You could try modifying the
>> code by removing the check.  However beware that you might not get the
>> results you desire!  But should this happen, please, go ahead and fix it
>> for your use case and then donate the code.  This is something I've
>> personally wanted for a long time.
>>
>> James Dyer
>> Ingram Content Group
>>
>>
>> -Original Message-
>> From: elisabeth benoit [mailto:elisaelisael...@gmail.com]
>> Sent: Tuesday, April 14, 2015 7:37 AM
>> To: solr-user@lucene.apache.org
>> Subject: using DirectSpellChecker and FileBasedSpellChecker with Solr
>> 4.10.1
>>
>> Hello,
>>
>> I am using Solr 4.10.1 and trying to use DirectSolrSpellChecker and
>> FileBasedSpellchecker in same request.
>>
>> I've applied change from patch 135.patch (cf Solr-6271). I've tried
>> running
>> the command "patch -p1 -i 135.patch --dry-run" but it didn't work, maybe
>> because the patch was a fix to Solr 4.9, so I just replaced line in
>> ConjunctionSolrSpellChecker
>>
>> else if (!stringDistance.equals(checker.getStringDistance())) {
>>  throw new IllegalArgumentException(
>>  "All checkers need to use the same StringDistance.");
>>}
>>
>>
>> by
>>
>> else if (!stringDistance.equals(checker.getStringDistance())) {
>> throw new IllegalArgumentException(
>> "All checkers need to use the same StringDistance!!! 1:" +
>> checker.getStringDistance() + " 2: " + stringDistance);
>>   }
>>
>> as it was done in the patch
>>
>> but still, when I send a spellcheck request, I get the error
>>
>> msg": "All checkers need to use the same StringDistance!!!
>> 1:org.apache.lucene.search.spell.LuceneLevenshteinDistance@15f57db32:
>> org.apache.lucene.search.spell.LuceneLevenshteinDistance@280f7e08"
>>
>> From error message I gather both spellchecker use same distanceMeasure
>> LuceneLevenshteinDistance, but they're not same instance of
>> LuceneLevenshteinDistance.
>>
>> Is the condition all right? What should be done to fix this properly?
>>
>> Thanks,
>> Elisabeth
>>
>
>


Re: using DirectSpellChecker and FileBasedSpellChecker with Solr 4.10.1

2015-04-14 Thread elisabeth benoit
Thanks for your answer!

I didn't realize this what not supposed to be done (conjunction of
DirectSolrSpellChecker and FileBasedSpellChecker). I got this idea in the
mailing list while searching for a solution to get a list of words to
ignore for the DirectSolrSpellChecker.

Well well well, I'll try removing the check and see what happens. I'm not a
java programmer, but if I can find a simple solution I'll let you know.

Thanks again,
Elisabeth

2015-04-14 16:29 GMT+02:00 Dyer, James :

> Elisabeth,
>
> Currently ConjunctionSolrSpellChecker only supports adding
> WordBreakSolrSpellchecker to IndexBased- FileBased- or
> DirectSolrSpellChecker.  In the future, it would be great if it could
> handle other Spell Checker combinations.  For instance, if you had a
> (e)dismax query that searches multiple fields, to have a separate
> spellchecker for each of them.
>
> But CSSC is not hardened for this more general usage, as hinted in the API
> doc.  The check done to ensure all spellcheckers use the same
> stringdistance object, I believe, is a safeguard against using this class
> for functionality it is not able to correctly support.  It looks to me that
> SOLR-6271 was opened to fix the bug in that it is comparing references on
> the stringdistance.  This is not a problem with WBSSC because this one does
> not support string distance at all.
>
> What you're hoping for, however, is that the requirement for the string
> distances be the same to be removed entirely.  You could try modifying the
> code by removing the check.  However beware that you might not get the
> results you desire!  But should this happen, please, go ahead and fix it
> for your use case and then donate the code.  This is something I've
> personally wanted for a long time.
>
> James Dyer
> Ingram Content Group
>
>
> -Original Message-
> From: elisabeth benoit [mailto:elisaelisael...@gmail.com]
> Sent: Tuesday, April 14, 2015 7:37 AM
> To: solr-user@lucene.apache.org
> Subject: using DirectSpellChecker and FileBasedSpellChecker with Solr
> 4.10.1
>
> Hello,
>
> I am using Solr 4.10.1 and trying to use DirectSolrSpellChecker and
> FileBasedSpellchecker in same request.
>
> I've applied change from patch 135.patch (cf Solr-6271). I've tried running
> the command "patch -p1 -i 135.patch --dry-run" but it didn't work, maybe
> because the patch was a fix to Solr 4.9, so I just replaced line in
> ConjunctionSolrSpellChecker
>
> else if (!stringDistance.equals(checker.getStringDistance())) {
>  throw new IllegalArgumentException(
>  "All checkers need to use the same StringDistance.");
>}
>
>
> by
>
> else if (!stringDistance.equals(checker.getStringDistance())) {
> throw new IllegalArgumentException(
> "All checkers need to use the same StringDistance!!! 1:" +
> checker.getStringDistance() + " 2: " + stringDistance);
>   }
>
> as it was done in the patch
>
> but still, when I send a spellcheck request, I get the error
>
> msg": "All checkers need to use the same StringDistance!!!
> 1:org.apache.lucene.search.spell.LuceneLevenshteinDistance@15f57db32:
> org.apache.lucene.search.spell.LuceneLevenshteinDistance@280f7e08"
>
> From error message I gather both spellchecker use same distanceMeasure
> LuceneLevenshteinDistance, but they're not same instance of
> LuceneLevenshteinDistance.
>
> Is the condition all right? What should be done to fix this properly?
>
> Thanks,
> Elisabeth
>


RE: using DirectSpellChecker and FileBasedSpellChecker with Solr 4.10.1

2015-04-14 Thread Dyer, James
Elisabeth,

Currently ConjunctionSolrSpellChecker only supports adding 
WordBreakSolrSpellchecker to IndexBased- FileBased- or DirectSolrSpellChecker.  
In the future, it would be great if it could handle other Spell Checker 
combinations.  For instance, if you had a (e)dismax query that searches 
multiple fields, to have a separate spellchecker for each of them.

But CSSC is not hardened for this more general usage, as hinted in the API doc. 
 The check done to ensure all spellcheckers use the same stringdistance object, 
I believe, is a safeguard against using this class for functionality it is not 
able to correctly support.  It looks to me that SOLR-6271 was opened to fix the 
bug in that it is comparing references on the stringdistance.  This is not a 
problem with WBSSC because this one does not support string distance at all.

What you're hoping for, however, is that the requirement for the string 
distances be the same to be removed entirely.  You could try modifying the code 
by removing the check.  However beware that you might not get the results you 
desire!  But should this happen, please, go ahead and fix it for your use case 
and then donate the code.  This is something I've personally wanted for a long 
time.

James Dyer
Ingram Content Group


-Original Message-
From: elisabeth benoit [mailto:elisaelisael...@gmail.com] 
Sent: Tuesday, April 14, 2015 7:37 AM
To: solr-user@lucene.apache.org
Subject: using DirectSpellChecker and FileBasedSpellChecker with Solr 4.10.1

Hello,

I am using Solr 4.10.1 and trying to use DirectSolrSpellChecker and
FileBasedSpellchecker in same request.

I've applied change from patch 135.patch (cf Solr-6271). I've tried running
the command "patch -p1 -i 135.patch --dry-run" but it didn't work, maybe
because the patch was a fix to Solr 4.9, so I just replaced line in
ConjunctionSolrSpellChecker

else if (!stringDistance.equals(checker.getStringDistance())) {
 throw new IllegalArgumentException(
 "All checkers need to use the same StringDistance.");
   }


by

else if (!stringDistance.equals(checker.getStringDistance())) {
throw new IllegalArgumentException(
"All checkers need to use the same StringDistance!!! 1:" +
checker.getStringDistance() + " 2: " + stringDistance);
  }

as it was done in the patch

but still, when I send a spellcheck request, I get the error

msg": "All checkers need to use the same StringDistance!!!
1:org.apache.lucene.search.spell.LuceneLevenshteinDistance@15f57db32:
org.apache.lucene.search.spell.LuceneLevenshteinDistance@280f7e08"

From error message I gather both spellchecker use same distanceMeasure
LuceneLevenshteinDistance, but they're not same instance of
LuceneLevenshteinDistance.

Is the condition all right? What should be done to fix this properly?

Thanks,
Elisabeth