2017-11-07 18 views
2

Solr 6.6 및 product_name 필드의 Spring Boot를 사용하여 자동 제안 기능을 구현하려고합니다. 나는 핵심에 다음과 같은 기록을주고있다. here을 정의 Solr 제안하지 않음

를 작동하고 나는 기본을 달성 할 수 있어요 기능을 제안으로

{"id":"xsku2023","type":"0","name":"Retro Lamp","product_id":"xprod2023","product_name":"Bajaj Lamp","product_type":"null","product_description":"Cheap and Best Lamp","listPrices":"65","plist3080002":"39.99","inventory_status":"In Stock","category_id":"catTableLamps","category_name":"TableLamps","category_href":"null","category_parent":"null","brand":"Bajaj"}, 

{"id":"xsku2024","type":"0","name":"Retro Lamp","product_id":"xprod2024","product_name":"Bajaj Table Lamp","product_type":"null","product_description":"Cheap and Best Table Lamp","listPrices":"65","plist3080002":"39.99","inventory_status":"In Stock","category_id":"catTableLamps","category_name":"TableLamps","category_href":"null","category_parent":"null","brand":"Bajaj"} 

나는 /이 엔드 포인트 제안 정의했습니다. 완벽하게 괜찮 위의 URL을 타격 내가 접두어로 시작하는 제품 이름을 얻고 때

http://localhost:8983/solr/ProductATG/suggest?suggest=true&suggest.build=true&suggest.dictionary=productSuggester&wt=json&suggest.q=Baj 


응답 아래 얻기 나는 쿼리에 제공했다.

{"responseHeader":{"status":0,"QTime":8},"command":"build","suggest":{"productSuggester":{"Baj":{"numFound":2,"suggestions":[{"term":"Bajaj Lamp","weight":0,"payload":""},{"term":"Bajaj Table Lamp","weight":0,"payload":""}]}}}} 


는 지금, 나는 관계없이 순서의, 다음 단계를 가고 싶어하고 결과를 달성하고자합니다. 예를 들어. SOLR 지수 기한

제품 이름 - "바자 즈 램프", "바자 테이블 램프"나는 에 대한 램프을 검색하면

, 두 제품 이름 "바자 즈 램프", "바자 테이블 램프"해야 램프를 검색하면 현재 응답으로 와야합니다. 아무런 결과도 나타나지 않습니다..

답변

0

정렬되지 않은 검색을 수행하는 방법을 알아 냈습니다. 이는 AnalyzingInfixLookupFactory을 사용하여 수행 할 수 있습니다. AnalyzingInfixLookupFactory는 중위어 검색을 수행 할 수 있습니다.

solrconfig.xml

<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy"> 
    <lst name="defaults"> 
    <str name="suggest">true</str> 
    <str name="suggest.count">10</str> 
    </lst> 
    <arr name="components"> 
    <str>suggest</str> 
    </arr> 
</requestHandler> 



<searchComponent name="suggest" class="solr.SuggestComponent"> 
    <lst name="suggester"> 
    <str name="name">productSuggester</str> 
    <!--<str name="lookupImpl">FuzzyLookupFactory</str> --> 
    <str name="lookupImpl">AnalyzingInfixLookupFactory</str> --> 
    <str name="dictionaryImpl">DocumentDictionaryFactory</str> 
    <str name="field">product_name</str> 
    <!-- <str name="weightField">price</str> --> 
    <str name="buildOnCommit">true</str> 
    <str name="suggestAnalyzerFieldType">text_suggest</str> 
    <str name="buildOnStartup">true</str> 
    <str name="highlight">false</str> 
    </lst> 
</searchComponent> 

<!-- Added for testign AnalyzingInfixLookupFactory --> 
<str name="queryAnalyzerFieldType">text_suggest</str> 

관리 스키마

<fieldtype name="text_suggest" class="solr.TextField"> 
     <analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory"/>   
     <filter class="solr.LowerCaseFilterFactory" /> 
     <filter class="solr.ASCIIFoldingFilterFactory"/> 
     </analyzer> 
</fieldtype>