Solr 索尔建议不要工作

Solr 索尔建议不要工作,solr,solrj,search-suggestion,Solr,Solrj,Search Suggestion,我正在尝试使用Solr 6.6和product_name字段上的Spring Boot实现自动建议功能。我在核心部分给出以下记录 {"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",

我正在尝试使用Solr 6.6和product_name字段上的Spring Boot实现自动建议功能。我在核心部分给出以下记录

{"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索引中找到-“Bajaj灯”、“Bajaj台灯”


如果我搜索Lamp,如果我搜索Lamp,则当前应响应产品名称“Bajaj Lamp”,“Bajaj Table Lamp”

我已找到如何进行无序搜索的方法。这可以通过使用
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>

真的
10
建议
产品建议者
AnalyzingInfixLookupFactory-->
文档字典工厂
产品名称
真的
文本建议
真的
假的
文本建议
托管模式

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