Изменить ответ предложения solr на основе расширенного списка терминов

У меня есть требование повысить количество терминов в solr 4.7.x с автоматическим предложением ответа на основе значения повышения для каждого термина, и это повышение предназначено для некоторого набора терминов, определенных в файле (и бизнес может управлять этим файлом).

У меня есть проект расширения существующего модуля записи ответов или написания собственного плагина, и
например: файл mydic.suggest будет выглядеть как
eagles 40,00 показов 20,00 размещенных 30,00l

когда я начинаю печатать

-->Query1 : "(http://example.com/solr/collection1/suggest?q=eag)"

Первоначальный ответ solr будет (на основе моего индекса) предложением: {
нетерпеливый,
орлы
}

поэтому ответ на предложение следует изменить на
предложение:{
eagles,
нетерпеливый
}

-->Query2 : "(http://example.com/solr/collection1/suggest?q=ho)" исходный ответ Solr будет (на основе моего индекса)

предложение: {праздник,
холли,
дом,
родной город,
хоп,
надежда,
хостинг
}

поэтому ответ на предложение следует изменить на -- обратите внимание на термин "размещенный", чтобы он появился

предложение:{принимал,
отпуск,
холли,
дом,
родной город,
хоп,
надежда
}

Это выполнимо с помощью специального плагина solr?

Мой обработчик предложений с Dic выглядит как ::

<searchComponent class="solr.SpellCheckComponent" name="suggest">
    <lst name="spellchecker">
      <str name="name">suggest</str>
      <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
      <str name="lookupImpl">org.apache.solr.spelling.suggest.fst.WFSTLookupFactory</str>
      <!-- Alternatives to lookupImpl: 
           org.apache.solr.spelling.suggest.fst.FSTLookupFactory   [finite state automaton]
           org.apache.solr.spelling.suggest.fst.WFSTLookupFactory [weighted finite state automaton]
           org.apache.solr.spelling.suggest.jaspell.JaspellLookupFactory [default, jaspell-based]
           org.apache.solr.spelling.suggest.tst.TSTLookupFactory   [ternary trees]

      <str name="comparatorClass">freq</str>-->
      <str name="sourceLocation ">./../suggest/autoSuggestDic.txt</str>
      <str name="field">textSuggest</str>  <!-- the indexed field to derive suggestions from -->
      <str name="buildOnCommit">true</str>
      <bool name="exactMatchFirst">true</bool>
    </lst>
     <!-- specify a fieldtype using keywordtokenizer + lowercase + cleanup -->
    <str name="queryAnalyzerFieldType">text_general</str>
  </searchComponent>
  <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">
    <lst name="defaults">
      <str name="name">suggest</str>
      <str name="spellcheck">true</str>
      <str name="spellcheck.dictionary">suggest</str>
      <str name="spellcheck.onlyMorePopular">false</str>
      <str name="spellcheck.count">15</str>   
      <str name="spellcheck.collate">true</str>
    </lst>
    <arr name="components">
      <str>suggest</str>
    </arr>
  </requestHandler>

person Rajesh    schedule 22.05.2014    source источник
comment
Вы смотрели поддержку словаря в Suggester?   -  person Srikanth Venugopalan    schedule 23.05.2014
comment
Да, я прошел через эту настройку для моего обработчика suugest с моим dic как # простой словарь фраз с автоматическим предложением для тестирования # обратите внимание, что в качестве разделителя используются табуляции! Howard 100.0 hits 3.0 testing 3.0 eagles 5.0 stern 5.0 show 5.0 К вашему сведению, мой обработчик предложений с dic выглядит так: Пожалуйста, смотрите мой обновленный вопрос. Спасибо Шриканту за ваше предложение.   -  person Rajesh    schedule 23.05.2014


Ответы (1)


Теперь у меня это работает с solr 4.7 как с поддержкой словаря, так и с индексным словарем.

Мой пользовательский обработчик предложений создает экземпляр HighFrequencyDictionary (который создается с использованием моего индекса) и FileDictionary (это мой файл словаря, упомянутый как

./../autoSuggestDic.dic в экземпляре solrConfig.xml)

в методе build(...) и пользовательском методе getSuggestions(SpellingOptions options){..} используются оба этих словаря для предложения.

Это похоже на повышение ваших условий предложения как повышение результатов поиска.

person Rajesh    schedule 06.06.2014