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();