Hello,

Any advice on the following suggester not suggesting issue would be very
welcome.

I can get suggestions when using a spell checker but not when using the
suggester. Both types are querying the same suggestion field.

I'm using the following settings:

 <field name="suggestion" type="text_suggest" indexed="true" stored="true"
multiValued="true"/>


<fieldType name="text_suggest" class="solr.TextField"
positionIncrementGap="100"  multiValued="true">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
<analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

I've tried using different field types for suggestion. I read that the
field shouldn't be heavily processed with stemmers for instance, I tried
with string but it made no difference.

  <copyField source="title"         dest="suggestion"/>
  <copyField source="description"   dest="suggestion"/>
  <copyField source="organizer"     dest="suggestion"/>
  <copyField source="location"      dest="suggestion"/>


I've tried with about 6 different examples from online, and none return
results, below is an example of one, the other examples were variations
using FuzzyLookupFactory instead.

  <searchComponent name="suggest5" class="solr.SuggestComponent">
      <lst name="suggester">
      <str name="name">mySuggester</str>
      <str name="lookupImpl">FSTLookupFactory</str>
      <str name="dictionaryImpl">DocumentDictionaryFactory</str>
      <str name="field">suggestion</str>
      <str name="suggestAnalyzerFieldType">string</str>
    </lst>
  </searchComponent>


  <requestHandler name="/suggest5" class="solr.SearchHandler"
startup="lazy">
    <lst name="defaults">
      <str name="suggest">true</str>
      <str name="suggest.count">10</str>
     <str name="suggest.dictionary">mySuggester</str>
    </lst>
    <arr name="components">
      <str>suggest5</str>
    </arr>
  </requestHandler>

http://localhost:8983/solr/events/suggest5?suggest.dictionary=mySuggester&suggest=true&suggest.build=true&suggest.q=edu
http://localhost:8983/solr/events/suggest5?q=edu
<http://localhost:8983/solr/events/suggest5?q=education>
both return

{
  "responseHeader":{
    "status":0,
    "QTime":4},
  "suggest":{"mySuggester":{
      "edu":{
        "numFound":0,
        "suggestions":[]}}}}


spell checker returns a couple of results for this.
I was restarting solr after making any changes.

This is the setup for the spellchecker:

  <searchComponent class="solr.SpellCheckComponent" name="suggest">
      <str name="queryAnalyzerFieldType">string</str>
      <lst name="spellchecker">
          <str name="name">suggest</str>
          <str
name="classname">org.apache.solr.spelling.suggest.Suggester</str>
         <str name="lookupImpl">FuzzyLookupFactory</str>
         <str name="suggestAnalyzerFieldType">string</str>
          <str name="field">suggestion</str>
          <float name="threshold">0.00001</float>
          <str name="spellcheckIndexDir">spellchecker</str>
          <str name="comparatorClass">freq</str>
          <str name="buildOnOptimize">true</str>
          <float name="accuracy">0.5</float>
          <!--<str name="buildOnCommit">true</str>-->
      </lst>
 </searchComponent>

  <requestHandler class="solr.SearchHandler" name="/suggest">
      <lst name="defaults">
          <str name="spellcheck">on</str>
          <str name="spellcheck.dictionary">suggest</str>
          <str name="spellcheck.onlyMorePopular">true</str>
          <str name="spellcheck.extendedResults">true</str>
          <str name="spellcheck.count">10</str>
          <str name="spellcheck.collate">true</str>
          <str name="spellcheck.maxCollations">10</str>
          <str name="spellcheck.maxCollationTries">5</str>
      </lst>
      <arr name="components">
          <str>suggest</str>
      </arr>
  </requestHandler>


I'm trying to get an old version 4 config working updated to work with 8.5
Am I missing out by not being able to use the dedicated suggester?
Is the field type for suggestion optimal?

Many thanks in advance.

Best,
Phil.













  <searchComponent class="solr.SpellCheckComponent" name="suggest">
      <str name="queryAnalyzerFieldType">string</str>
      <lst name="spellchecker">
          <str name="name">suggest</str>
          <str
name="classname">org.apache.solr.spelling.suggest.Suggester</str>
          <str name="lookupImpl">FuzzyLookupFactory</str>
          <str name="suggestAnalyzerFieldType">string</str>
          <str name="field">suggestion</str>
          <float name="threshold">0.00001</float>
          <str name="spellcheckIndexDir">spellchecker</str>
          <str name="comparatorClass">freq</str>
          <str name="buildOnOptimize">true</str>
          <float name="accuracy">0.5</float>
      </lst>

Reply via email to