2017-11-07 5 views
2

Ich versuche Auto-Suggest-Funktion mit Solr 6.6 und Spring Boot im Feld product_name zu implementieren. Ich gebe folgende Aufzeichnungen im Kern.Solr Suggest funktioniert nicht

{"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"} 

Ich habe die/definiert als here definiert Endpunkt und arbeitet

Ich kann den Grundzug vorschlagen erreichen.

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


die folgende Antwort zu erhalten, wenn die oben genannte URL schlagen, das ist völlig in Ordnung, und ich bin mit dem Produktnamen immer mit dem Präfix beginnen sofern ich in Abfrage.

{"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":""}]}}}} 


Jetzt möchte ich das Ergebnis nächste Ebene und will gehen erreichen, unabhängig von Reihenfolge. Für Beispiel

Produktname avilable in Solr-Index - "Bajaj Lamp", "Bajaj Tischlampe"

Wenn ich für Lampe suchen, beide Produktnamen "Bajaj Lampe", "Bajaj Tischlampe" sollte komme als Antwort zur Zeit, wenn ich suche Lampe keine Ergebnisse gefunden werden kommt.

Antwort

0

Ich habe herausgefunden, wie man die ungeordnete Suche macht. Dies kann unter Verwendung der AnalyzingInfixLookupFactory erreicht werden. AnalysingInfixLookupFactory kann die Infix-Suche durchführen.

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> 

Managed-Schema

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