solr搜索建议

1配置

<searchComponent name="suggest" class="solr.SuggestComponent">
    <lst name="suggester"> 
	    <!--  自动建议器名称,需要在查询的时候指定  -->
		  <str name="name">mySuggester</str> 
		    <!--  查找器工厂类,确定如何从字典索引 中查找词  -->
		  <str name="lookupImpl">FuzzyLookupFactory</str> 
		  <!--  决定如何将词存入到索 引。  -->
		  <str name="dictionaryImpl">DocumentDictionaryFactory</str>
		  
		      <!-- 词典域。一般指定查询的域/或者复制域。 -->
		  <str name="field">name</str> 
		  <str name="suggestAnalyzerFieldType">text_ik</str> 
		 
   </lst>
  </searchComponent>

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

2后台代码

        SolrQuery query=new SolrQuery();
        query.setRequestHandler("/suggest");
        query.setParam("suggest.q",user.getName());
        query.setParam("suggest","true");
        query.setParam("suggest.dictionary","mySuggester");
      
        QueryResponse queryResponse= solrTemplate.execute(solrClient -> solrClient.query(solrs_core,query));
        Map<String, List<Suggestion>> suggestions = queryResponse.getSuggesterResponse().getSuggestions();
        Map<String, List<String>> suggestedTerms = queryResponse.getSuggesterResponse().getSuggestedTerms();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值