tomcat8部署solr8——两种中文分词器配置

准备工作

在上面的基础上我又创建了一个实例 collection2,映射的另一个products 表,这个表字段多一些,怎么配置就不说了,参考上一篇 全文搜索引擎 solr------(一)solr8 最新版本安装配置
添加的域如下:
很显然这是 managed-schema 文件

	<field name="p_id" type="string" indexed="true" stored="true" />
	<field name="p_name" type="string" indexed="true" stored="true" />
	<field name="p_catalog" type="string" indexed="true" stored="true" />
	<field name="p_catalog_name" type="solr_cnAnalyzer" indexed="true" stored="true" />
	<field name="p_price" type="string" indexed="true" stored="true" />
	<field name="p_description" type="string" indexed="true" stored="true" />
	<field name="p_picture" type="string" indexed="true" stored="true" />
	<field name="p_number" type="string" indexed="true" stored="true" />
	<field name="p_release_time" type="string" indexed="true" stored="true" />

我们现在想在p_name 建立索引, 并且分词

solr8 自带分词工具

找到这个jar
在这里插入图片描述
复制到 webapp 路径的lib 下
在这里插入图片描述
接下来配置 文件添加

 <!-- ChineseAnalyzer 自带的中文分词器 -->
    <fieldType name="solr_cnAnalyzer" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
      </analyzer>
    </fieldType>

这样就配置好了 类型名称是 solr_cnAnalyzer 的分词器。

外部分词器配置

先吐槽一下: IKAnalyzer2012FF_u1.jar 和 IKAnalyzer 3.2.8 这样的都不行,各种报错让你怀疑人生,就是因为版本太旧了,我们用这个

下载地址:6.5高版本分词器下载

解压后目录
在这里插入图片描述
包括两个jar 包和三个文件。
jar 包放到这个位置: solr-8.2.0\server\solr-webapp\webapp\WEB-INF\lib
文件放到这里:solr-8.2.0\server\solr-webapp\webapp\WEB-INF\classes
如果没有classes目录就建一个。

接下来配置 文件添加

<field name="p_textIk" type="text_ik" indexed="true" stored="true" />
	<!-- IKAnalyzer-->
    <fieldType name="text_ik" class="solr.TextField">
      <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>

说明下: solr.TextField 是使用分词的,solr.StrField 不适用;
这样就配置好了 p_textIk 分词器,另外,solr 中也有默认的分词器 :text_ws,不过不支持中文。

修改分词的域类型

在 managed-schema 修改配置,注意这两个地方,上边我们定义了两个分词器,然后把 p_name 和 p_catalog_name 的 type 类型改为刚才定义的分词器类型。
在这里插入图片描述

演示

在这里插入图片描述
输入我是中国人,选择我们的分词字段 p_textIk 和 solr_cnAnalyzer,可以看到分好了,两个分词器都好了。

现在我们导入数据,按照索引来搜索下,
导入之后的数据:

在这里插入图片描述

先按照 p_name 这个域来搜索,
在这里插入图片描述
注意 1 和 2 处的设置, 1 的地方指明了搜索关键字,2 指明索引名称。

然后 按照 p_catalog_name 搜索,
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值