2016-11-02 6 views
0

Я хочу создать коллекцию с автопредложением в Solr, я попробовал за одно слово работать нормально, но я ищу фразы, например, если мы наберем «Barack», в его случае должны появиться «Барак», «Барак Обама», «Президент Барака Обамы США ".Как настроить solr (4.10) для автоматического предложения нескольких слов?

У меня есть 6 полей, но я хочу дать предложение только для одной поданной (i.e..Content), как настроить schema.xml и solr config.xml в соответствии с этими полями. Я попробовал массу примеров, но это не сработало для меня! Есть ли какое-то простое решение для этого? Любая помощь будет оценена! Спасибо заранее.

Спасибо Amit за ответ, я пытался что также, но не получил, что я искал мой schema.xml, как это я хочу предложение на моем поле Содержания и мой Solr конфигурация приведена ниже!

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
    <field name="Content" type="suggest_phrase" indexed="true" stored="true" /> 
    <field name="Lang" type="string" indexed="true" stored="true" /> 
    <field name="PubDate" type="tdate" indexed="true" stored="true" /> 
    <field name="Section" type="string" indexed="true" stored="true" /> 
    <field name="PaperName" type="string" indexed="true" stored="true" /> 
    <field name="Page_No" type="tint" indexed="true" stored="true" /> 

    <fieldType name="suggest_phrase" class="solr.TextField" positionIncrementGap="100" multiValued="true"> 
    <analyzer> 
     <tokenizer class="solr.KeywordTokenizerFactory" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
    </analyzer> 


    <!-- search content --> 
    <searchComponent name="suggest_phrase" class="solr.SpellCheckComponent"> 
    <lst name="spellchecker"> 
     <str name="name">suggest_phrase</str> 
     <str name="classname">org.apache.solr.spelling.suggest.Suggester</str> 
     <str name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookup</str> 
     <str name="field">suggest_phrase</str> 
     <str name="buildOnCommit">true</str> 
    </lst> 
</searchComponent> 
<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest_phrase"> 
    <lst name="defaults"> 
     <str name="spellcheck">true</str> 
     <str name="spellcheck.dictionary">suggest_phrase</str> 
     <str name="spellcheck.onlyMorePopular">true</str> 
     <str name="spellcheck.count">10</str> 
     <str name="spellcheck.collate">false</str> 
    </lst> 
    <arr name="components"> 
     <str>suggest_phrase</str> 
    </arr> 
</requestHandler> 

ответ

0

Вы можете использовать гальку на поле, которое вы используете для автоматического предположения.

+0

Привет, Аман, как вы сказали, я пробовал с Shinglefilterfactory, но не получил то, что искал! любое другое решение? –