Reputation: 113
I am trying the autosuggestion with tokenization. If I provide 'solr', I should get results of 'Apache Solr' too. The below configuration provides results as 'Apache solr' if I provide 'apache'. I need a tokenized wildcard search.
<fieldType name="custom_text" class="solr.TextField" positionIncrementGap="100" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="content" type="custom_text" multiValued="false" indexed="true" required="false" stored="true"/>
Applying request handler as below:
<searchComponent name="customsuggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">customsuggester-content</str>
<str name="lookupImpl">FuzzyLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">content</str>
<str name="weightField">price</str>
<str name="suggestAnalyzerFieldType">custom_text</str>
<str name="buildOnStartup">false</str>
</lst>
</searchComponen>
<requestHandler name="/customsuggest" class="solr.SearchHandler"
startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
</lst>
<arr name="components">
<str>customsuggest</str>
</arr>
</requestHandler>
When I tried with the below url, no results getting out from that:
http://host:port/solr/collection-name/customsuggest?suggest=true&suggest.build=true&suggest.dictionary=customsuggester-content&indent=on&wt=json&suggest.q=solr
When I tried with below url, I am getting results:
http://host:port/solr/collection-name/customsuggest?suggest=true&suggest.build=true&suggest.dictionary=customsuggester-content&indent=on&wt=json&suggest.q=apache
Upvotes: 0
Views: 337
Reputation: 121
Try using the "AnalyzingInfixLookupFactory" lookupImpl. It provides suggestions that contain your token at any position in the suggestion content.
<searchComponent name="customsuggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">customsuggester-content</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">content</str>
<str name="suggestAnalyzerFieldType">custom_text</str>
<str name="buildOnStartup">false</str>
</lst>
You can find all the available lookup implementations at Solr Suggester Overview
Upvotes: 1