Hello,

Recently we noticed that solr and its spellchecker do not return results  for 
keywords typed with non-whitespace delimiter.
A user accidentally typed u instead of white space. For example, paulusoles 
instead of paul soles. Solr does not return any results or spellcheck 
suggestion for keyword paulusoles, although it returns results for keywords 
"paul soles", paul, and soles.

search.yahoo.com  returns results for the  keyword paulusoles as if it was 
given keyword paul soles.

Any ideas how to implement this functionality in solr?

text and spell fields are as follows;

  <fieldType name="text" class="solr.TextField" positionIncrementGap="100" 
termVectors="true" termPositions="true" termOffsets="true">
            <analyzer>
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="stopwords.txt" enablePositionIncrements="true"/>
                <filter class="solr.WordDelimiterFilterFactory" 
generateWordParts="1" generateNumberParts="1" catenateWords="1" 
catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" splitOnNumerics="0"/>
                <filter class="solr.ICUFoldingFilterFactory" />
                <filter class="solr.SnowballPorterFilterFactory" 
language="Spanish" />
                <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
            </analyzer>
        </fieldType>

  <fieldType name="spell" class="solr.TextField" positionIncrementGap="100">
            <analyzer>
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="stopwords.txt" enablePositionIncrements="true"/>
                <filter class="solr.WordDelimiterFilterFactory" 
generateWordParts="1" generateNumberParts="1" catenateWords="1" 
catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" splitOnNumerics="0"/>
                <filter class="solr.LowerCaseFilterFactory"/>
            </analyzer>
        </fieldType>


<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">direct</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.count">2</str>

This is solr -4.1.0 with cloud feature and index based dictionary.

Thanks.
Alex.

Reply via email to