У меня есть требование повысить количество терминов в 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>