solr学习篇二(solr配置suggest建议查询)

全文检索搜索引擎都会有这样一个功能:输入一个字符便自动提示出可选的短语:
在这里插入图片描述

配置 managed-schema文件

1、配置自己core文件夹conf下的managed-schema文件
这个是自己的字段:

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
 <field name="username" type="text_ik" indexed="true" stored="true"/>

2、新建一个suggest_username字段,并将username的值拷贝到suggest_username字段:

<field name="suggest_username" type="text_suggest"  indexed="true" stored="true"/>
<copyField source="username" dest="suggest_username"/>

copyField的source表示源,dest表示目标。

3、新建一个fieldType专门用于搜索建议:

   <fieldType name="text_suggest" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishPossessiveFilterFactory"/>
      </analyzer>
    </fieldType>

4、 配置solrconfig.xml文件
solrconfig.xml文件也在新建核心core的conf文件夹下

找到 searchComponent 替换掉

 <searchComponent name="suggest" class="solr.SuggestComponent">
    <lst name="suggester">
      <str name="name">xxxSuggester</str>
      <str name="lookupImpl">AnalyzingLookupFactory</str>      
      <str name="dictionaryImpl">DocumentDictionaryFactory</str>
      <str name="field">suggest_username</str>
      <str name="weightField">suggest_username</str>
      <str name="payloadField">id</str>
      <str name="suggestAnalyzerFieldType">text_suggest</str>
      <str name="buildOnStartup">false</str>
    </lst>
</searchComponent>

在searchComponent中的suggester需要配置一些参数解释。

name ;suggest名字
lookupImpl;查找不同算法实现,根据需要选择。
dictionaryImpl;dictionaryImpl。
field;建议的字段,如果是对多个字段做建议,就把多个字段拷贝到一个字段里面。即在定义filed的时候,定义为允许多值。
weightField;表示权重。
payloadField ;用于返回某一个值。
suggestAnalyzerFieldType;field字段的类型。
buildOnStartup;启动的时候构建建议索引。

找到 requestHandler 替换掉 (一般都在searchComponent下面)

	<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">
	      <!-- 上面配置的searchComponent名字suggest -->
	      <str>suggest</str>
	    </arr>
  </requestHandler>

这里 suggest就是上面配置的searchComponent名字suggest。

测试
部分参数说明
suggest.build=true ;表示构建suggest的索引,全部构建会耗时。可优化。
suggest.dictionary=AnalyzingSuggester ;指明使用上面加入的suggester字典组件名字
suggest.q=a ;suggest查询内容
http://127.0.0.1:8983/solr/testCore/suggest?suggest.build=true&suggest.dictionary=xxxSuggester&suggest.q=张
效果如图所示

在这里插入图片描述

tip:也可在管理界面查看,但是需要改一丢丢配置即可

在solrconfig.xml文件中去掉或注释如图所示一行

在这里插入图片描述
效果图如下

在这里插入图片描述

以上每个修改一次配置文件都需要重启solr。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值