2017-11-07 19 views
2

Solr 6.6とproduct_nameフィールドでSpringブートを使用して自動提案機能を実装しようとしています。私はコアに以下のレコードを与えています。 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"} 

私は/エンドポイントをお勧めし定義しています。

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


完全に罰金です上記のURLを、打ったときに、以下の応答を取得し、私は、クエリで提供接頭辞で始まる製品名を取得しています。

{"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のインデックスでavilable製品名 - 「バジャジランプ」、「バジャジテーブルランプ」

私はランプを検索する場合、両方の製品名「バジャジランプ」、「バジャジテーブルランプ」必要がありますランプを検索すると現在応答に来る結果が見つからない場合

答えて

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> 
関連する問題