Nkl Kumar
Nkl Kumar

Reputation: 41

Solr wildcard search not working on general text field

Am new to Solr world and I have Solr 7.7.2

Am trying to do a wild card search and it is not returning any results. Given below is my index, query analyzer set up for the field type.

Sample text: Solr’s standard query parser supports single and multiple character wildcard searches within single terms.

In the above sample text, I would like to search for standar* to match the word standard Appreciate your help on this.


<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
    <analyzer type="index">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>      
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
      <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
      <filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="1" splitOnCaseChange="0" splitOnNumerics="0"/>
      <filter class="solr.FlattenGraphFilterFactory" />
      <filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="1"/>
      <filter class="solr.FlattenGraphFilterFactory" />
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.PorterStemFilterFactory"/>
      <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>      
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
      <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
      <filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="1" splitOnCaseChange="0" splitOnNumerics="0"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.PorterStemFilterFactory"/>
      <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
    </analyzer>
  </fieldType>

Analysis screen shot from admin page

Upvotes: 0

Views: 884

Answers (1)

Nkl Kumar
Nkl Kumar

Reputation: 41

After few more hours of analyzing, added EdgeNgramfilter and it worked. I guess there will be performance issues if used on the large text field. I may need to test it out.

<filter class="solr.EdgeNGramFilterFactory" minGramSize="5" maxGramSize="10"/>

<analyzer type="index">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>      
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
      <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
      <filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="1" splitOnCaseChange="0" splitOnNumerics="0"/>
      <filter class="solr.FlattenGraphFilterFactory" />
      <filter class="solr.WordDelimiterGraphFilterFactory" preserveOriginal="1"/>
      <filter class="solr.FlattenGraphFilterFactory" />
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.EdgeNGramFilterFactory" minGramSize="5" maxGramSize="10"/>
      <filter class="solr.PorterStemFilterFactory"/>
      <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>

Upvotes: 0

Related Questions