centos7安装solr,安装分词器,配置自动补全

参考自:https://dzone.com/articles/solr-and-autocomplete-part-2?mz=33057-solr_lucene

安装solr很简单,官网下载二进制压缩包,解压后在bin目录下运行./solr start -force。这里安装的版本是7.7.3

1.添加admin core需要在solr-7.7.3/server/solr/目录下创建一个文件夹
然后将solr-7.7.3/server/solr/configsets/_default/conf下面的文件和文件夹拷贝到新建的文件夹下面,例如我的文件夹和admin core叫search_db

在这里插入图片描述

安装分词器:
2.下载ikanalyzer-solr6.5.zip文件(可以留下QQ,我发给你)
在这里插入图片描述
3.复制IK分词器的jar包:ik-analyzer-solr5-5.x.jar和solr-analyzer-ik-5.1.0.jar到solr-7.7.3/server/solr-webapp/webapp/WEB-INF/lib下,在solr-7.7.3/server/solr-webapp/webapp/WEB-INF下创建一个classes文件夹,把ext.dic,IKAnalyzer.cfg.xml,stopword.dic拷贝到classes文件夹下:
在这里插入图片描述
4.编辑solr-7.7.3/server/solr/xx/managed-schema文件,xx是你的core admin路径,在managed-schema文件中加入

<fieldType name="text_ik" class="solr.TextField">  
		<analyzer type="index" useSmart="false"
			class="org.wltea.analyzer.lucene.IKAnalyzer" />
		<analyzer type="query" useSmart="true"
			class="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>

然后验证
在这里插入图片描述

solr安装自动补全:
1.修改solrconfig.xml文件:
添加searchComponent, field是你要查询的补全字段:

<searchComponent name="suggest" class="solr.SpellCheckComponent">
	 <lst name="spellchecker">
	  <str name="name">suggest</str>
	  <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
	  <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
	  <str name="field">remake_auto</str>
	 </lst>
	</searchComponent>

添加:requestHandler

<requestHandler name="/suggest" class="org.apache.solr.handler.component.SearchHandler">
	 <lst name="defaults">
	  <str name="spellcheck">true</str>
	  <str name="spellcheck.dictionary">suggest</str>
	  <str name="spellcheck.count">10</str>
	 </lst>
	 <arr name="components">
	  <str>suggest</str>
	 </arr>
	</requestHandler>

2.修改managed-schema文件:
添加:

<field name="phone" type="string" indexed="true" stored="true" multiValued="false" />
	<field name="underPrice" type="pint" indexed="true" stored="true" multiValued="false" />
	<field name="price" type="pint" indexed="true" stored="true" multiValued="false" />
	<field name="include" type="pint" indexed="true" stored="true" multiValued="false" />
	<field name="province" type="string" indexed="true" stored="true" multiValued="false" />
	<field name="city" type="string" indexed="true" stored="true" multiValued="false" />
	<field name="operators" type="string" indexed="true" stored="true" multiValued="false" />
	<field name="details" type="text_ik" indexed="true" stored="true" multiValued="false" />
	<field name="initMeal" type="string" indexed="true" stored="true" multiValued="false" />
	<field name="preCost" type="pint" indexed="true" stored="true" multiValued="false" />
	<field name="supplier" type="string" indexed="true" stored="true" multiValued="false" />
	<field name="oneProxy" type="pint" indexed="true" stored="true" multiValued="false" />
	<field name="twoProxy" type="pint" indexed="true" stored="true" multiValued="false" />
	<field name="addTime" type="string" indexed="true" stored="true" multiValued="false" />
	<field name="status" type="pint" indexed="true" stored="true" multiValued="false" />
	<field name="remake" type="string" indexed="true" stored="true" multiValued="false" />
	<field name="remake_auto" type="text_auto" indexed="true" stored="true" multiValued="false" />
	
	<copyField source="remake" dest="remake_auto" />

copyField会自动拷贝(可有可无)

3.添加text_auto字段类型:

<fieldType class="solr.TextField" name="text_auto" positionIncrementGap="100">
 <analyzer>
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
  <filter class="solr.LowerCaseFilterFactory"/>
 </analyzer>
</fieldType>

4.注意要配置完两个配置文件再创建admin core才能生效

查询:
在这里插入图片描述
更新了新信息要勾选spellcheck.build才能生效
在这里插入图片描述
注意中文中有数字,managed-schema中的field标签的type不能用分词器text_ik类型,要用string类型,这样中文+数字的补全字段才会自动补全

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

97年的典藏版

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值