陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

分词我理解的是,输入的一句话,按照它自己定义的规则分为常用词语。

首先,Solr有自己基本的类型,string、int、date、long等等。

  对于string类型,比如在你的core/conf/manage-schema文件中,配置一个字段类型为string类型,如果查询符合“我是中国人”的数据,它就认为“我是中国人”是一个词语。
  但是如果你将该字段设置成了分词,即配置成了text_ik类型,就可能匹配“我”、“中国人”、“中国”、“中”、“人”带有这些字的该字段数据都可能被查询到。这就是分词带来的结果。具体要按照各自的业务来配置是否分词,分词对于大文本字段设置是合理的,但是对于小字段,设置分词是没必要的,甚至有相反的结果。比如你的某一个叫姓名的字段设置了分词,还不如设置string,查询时模糊匹配效果最好,(模糊匹配就是查询条件两边加上*),当然也要看自己业务需求是什么。

Solr分词的配置如下:

1.首先下载一个分词的jar包ik分词5.5jar包下载地址

2.将该分词jar包放到你的solr运行tomcat中的webapps/solr/WEB-INF/lib文件夹中,例如我的是D:\Tomcat9Solr\webapps\solr\WEB-INF\lib。

3.然后,在你的solrHome下的某个core/conf文件夹中,找到manage-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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.然后还是在这个manage-schema文件中,找到你想配置分词的字段,将其type改为text_ik类型:

 这里以dkdz为例,设置之前,在solr客户端查看是如下结果:
不好意思,我图贴错了,下边的3处应该是dkdz,不是dkbm!!
这里写图片描述

 配置分词如下:

这里写图片描述

 配置之后,在solr客户端的core admin中,reload该core,再次查看,变成如下页面:

这里写图片描述

  如果变成了上边这种结果,就说明分词成功了。对于分词后的字段,如果在查询结果上有歧义,最好是来到solr客户端的上边位置,看下你的条件是不是因为分词,给分成了不是你想要的那种结果。

下一篇写,分词添加自定义扩展词库

           
                           

       

版权声明:重在参与,贵在分享 https://blog.csdn.net/wohaqiyi/article/details/78287307
posted on   宏宇  阅读(454)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示