ошибка интеграции solr autosuggest

Я пытаюсь интегрировать функцию автоматического предложения solr в свой проект. Я использую это в качестве отправной точки. Я изменил свои поисковые поля соответственно.

моя схема.xml

<field name="name" type="text_suggest" indexed="true" stored="true"/>
<field name="manu" type="text_suggest" indexed="true" stored="true"/>  
<field name="popularity" type="int" indexed="true" stored="true" />

<!-- A variant of textsuggest which only matches from the very left edge -->
<copyField source="name" dest="textnge"/>
<field name="textnge" type="autocomplete_edge" indexed="true" stored="false" />

<!-- A variant of name which matches from the left edge of all terms (implicit truncation) -->
<copyField source="name" dest="textng"/>
<field name="textng" type="autocomplete_ngram" indexed="true" stored="false" omitNorms="true" omitTermFreqAndPositions="true" />

Мой обработчик запросов в solrconfig.xml

<requestHandler class="solr.SearchHandler" name="/ac" default="true" >
    <lst name="defaults">
    <str name="defType">edismax</str>
    <str name="rows">10</str>
    <str name="fl">*,score</str>
    <str name="qf">name^50 manu^20.0 textng^50.0</str>
    <str name="pf">textnge^50.0</str>
    <str name="bf">product(log(sum(popularity,1)),100)^20</str>
    <str name="debugQuery">false</str>
    </lst>
  </requestHandler>

Проблема в том, что мой обработчик "/ac" больше похож на обработчик "/select". Когда я набираю «moni», я ничего не получаю. Но когда я набираю «монитор», он возвращает мне документы, содержащие в них монитор.

Я пробовал это в течение всего дня, и ничего не работает. Любая помощь будет глубоко оценена


person Anurag Sharma    schedule 23.10.2013    source источник


Ответы (2)


Ну, когда вы ищете «moni» в своем запросе, вы на самом деле конкретно говорите, что ищете ключевое слово «moni». Попробуйте найти ключевые слова с несколькими терминами, добавив «*», например q=moni*.

Вы также можете просмотреть другие анализаторы fieldType, такие как autocomplete_edge (q=textnge:mori) или autocomplete_ngram (q=textng:mori), для получения дополнительных данных.

person JoelCarvalho    schedule 25.02.2015

Я думаю, вам нужно указать компонент поиска в solarconfig.xml, как показано ниже.

<searchComponent class="solr.SpellCheckComponent" name="ac">
        <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.tst.TSTLookupFactory</str>
            <str name="field">yourfieldname</str>  <!-- the indexed field to derive suggestions from -->
            <float name="threshold">0.005</float>
            <str name="buildOnCommit">true</str>
        </lst>
    </searchComponent>
person bittu    schedule 25.02.2015