In Solr, when merging tokens using solr.ShingleFilterFactory, it may generate multiple Shingles depending on the min/maxShingleSize and tokens to merged. Due to this, search fails. How can I merge multiple tokens into one so that my search works. Here are my settings:
<fieldType name="text_ngram" class="solr.TextField">
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="\b \b" replacement=""/>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"/>
<filter class="solr.ShingleFilterFactory" tokenSeparator="" minShingleSize="2" maxShingleSize="7" outputUnigrams="false"/>
<filter class="solr.LengthFilterFactory" min="6" max="7"/>
</analyzer>
</fieldType>
Here is the debug output for query name_ngram:"our G20 9NS"
"debug": {
"rawquerystring": "name_ngram:\"our G20 9NS\"",
"querystring": "name_ngram:\"our G20 9NS\"",
"parsedquery": "PhraseQuery(name_ngram:\"rg209ns g209ns\")",
"parsedquery_toString": "name_ngram:\"rg209ns g209ns\"",
"explain": {},
Thanx in advance,