Question about WordDelimiterFilter. The search behavior that we experience with WordDelimiterFilter satisfies well, except for the case where there is a special character either at the leading or trailing end of the term.
For instance: *‘d&b’ * —> Works as expected. Finds all docs with ‘d&b’. *‘p!nk’* —> Works fine as above. But on cases when, there is a special character towards the trailing end of the term, like ‘Yahoo!’ *‘yahoo!’* —> Turns out to be a search for just *‘yahoo’* with the special character *‘!’* stripped out. This WordDelimiterFilter behavior is documented http://lucene.apache.org/core/4_6_0/analyzers-common/index.html?org/apache/lucene/analysis/miscellaneous/WordDelimiterFilter.html What I would like to have is, the search performed without stripping out the leading & trailing special character. Is there a way to achieve this behavior with WordDelimiterFilter. This is current config that we have for the field: <fieldType name="text_wdf" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory" /> <filter class="solr.WordDelimiterFilterFactory" splitOnCaseChange="0" generateWordParts="0" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0" preserveOriginal="1" types="specialchartypes.txt"/> <filter class="solr.LowerCaseFilterFactory" /> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory" /> <filter class="solr.WordDelimiterFilterFactory" splitOnCaseChange="0" generateWordParts="0" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0" preserveOriginal="1" types="specialchartypes.txt"/> <filter class="solr.LowerCaseFilterFactory" /> </analyzer> </fieldType> thanks