2016-11-02 5 views
0

Solr에서 자동 제안을 사용하여 컬렉션을 만들고 싶습니다. 한 단어로 잘 작동하지만 "Barack"이라고 입력하면 "Barack Obama", "Barack Obama president"라고 입력하면 예를 들어 구를 찾고 있습니다. 미국의 ".여러 단어 자동 제안을 위해 solr (4.10)을 구성하는 방법은 무엇입니까?

필자에게는 6 개의 입력란이 있지만이 입력란에 따라 schema.xml을 구성하고이 필드에 따라 config.xml을 구성하는 방법은 하나의 필드 만 (예 : 내용)에 대한 제안을하고 싶습니다. 나는 많은 예제를 시도했지만 그것은 저에게 효과가 없었습니다! 이 간단한 해결책이 있습니까 ?? 어떤 도움을 주셔서 감사합니다! 미리 감사드립니다. 응답

감사합니다 아 미트, 내가 노력은 또한하지만 내의 schema.xml을 찾고 있었다 무엇을 얻을 didnt는 것은 내 컨텐츠 필드 에 제안을하려면 다음과 같이하고 내 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

안녕하세요, Aman, 내가 말했듯이 Shinglefilterfactory를 시도했지만 내가 찾고있는 것을 얻지 못했습니다! 다른 해결책 ?? –