Hello,

I have an interesting behaviour.

I have a FieldType "Text_PL". This type is configured as:

<fieldType name="text_pl" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="words/stopwords_pl.txt" enablePositionIncrements="true" />
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" 
generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" 
splitOnCaseChange="1"/>
        <filter class="solr.ASCIIFoldingFilterFactory" />
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StempelPolishStemFilterFactory"  
protected="words/protwords_pl.txt"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" 
words="words/stopwords_pl.txt" enablePositionIncrements="true" />
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" 
generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" 
splitOnCaseChange="1"/>
        <filter class="solr.ASCIIFoldingFilterFactory" />
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.StempelPolishStemFilterFactory" 
protected="words/protwords_pl.txt"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    </fieldType>

So, one filter in the chain is the ASCIIFoldingFilterFactory which normalizes 
"special" characters (e.g. ó --> O).
If I query "field:czolenka" it shows the same behaviour like searching for 
"field:czółenka" - as expected.

Now, if I use the DisMax query, this normalization step does not take place. I 
debugged the code, if I run the "normal" query, the debugger stops at the 
ASCIIFoldingFilter (as expected), if I run the DisMax Query, there is no stop 
at this filter - so the filter is not used.

Does anybody has an idea why? 
Do I have to configure the DisMax RequestHandler for ASCIIFolding - if possible 
?

Thanks,

Ralf

Reply via email to