Lucene&&Solr——分析器(Analyzer)

简介: Lucene&&Solr——分析器(Analyzer)

引言

 

在Lucene中分析器其中举足轻重的作用,为了满足多种语言的支持,需要扩展一些分析器,仅仅是Lucene官方提供的标准分析器是远远不够的,比如对于中文,我们就需要引用第三方的中文分析器,下面就介绍几种分析器。

 

分析器的执行过程:



20170802235731687.png


以标准分析器为例说明这个三个TokenFilter的作用:


第一个过滤器:将首字母小写


    第二个过滤器:以空格为分割线,将句进行拆分成独立的单词


    第三个过滤器:去掉一些没有意义的单词 比如 the  a  an  等等

 

Lucene自带的中文分词器:


   StandardAnalyzer:


   单个字分词:就是按照中文一个字一个字的进行分词:比如“我爱中国”


   效果:“我”“爱”“中”“国”


   CJKAnalyzer

 

二分法分词:按两个字进行切分,如:“我是中国人” 效果:“我是”“是中”“中国”“国人”


   SmartChineseAnalyzer


   对中文的支持比较好,但扩展性差 扩展词库 禁用词库等不好处理

 

上面的这几种分析器都不能很好的满足我们的需求,所以有人写了一个良好的中文分析器IKAnalyzer


  这个中文分析器的使用也非常的简单:


  第一步:引入jar包IKAnalyzer2012FF_u1.jar


  第二步:拷贝配置文件 放在src下面  


20170803001227407.png

第三步:直接nAnalyzer analyzer = new IKAnalyzer();即可使用


分析器的使用时机

 

索引时使用Analyzer

 

输入关键字进行搜索,当需要让该关键字与文档内容所包含的词进行匹配时需要对文档域内容进行分析,需要经过Analyzer分析器处理生成语汇单元(Token).分析器分析的对象时文档中的Field域。当Fieldshuxing tokenized(是否分词)为true时会对Field值进行分析,如图:


20170803001650477.png


搜索时使用Analyzer

 

对搜索关键字进行分析和索引分析一样,使用Analyzer对搜索关键字进行分析、分词处理,使用分析后每个词语进行搜索。比如搜索关键字:spring web,经过分析器进行分词,得出 spring  web 拿去索引词典表查找,找到索引连接到Document,解析Document内容

对于匹配整体Field域的查询可以在搜索时不分析,比如根据订单号,身份证号查询等

 

再次强调:搜索使用的分析器和索引使用的分析器要一致。

 

solr安装中文分析器(IKAnalyzer)


20170803002432765.png


小结

 

本文主要介绍了一些分析器的内容,尤其是对于中文分析器的使用,分析器的执行流程和执行时机需要我们了解,希望能给读者带来帮助。

目录
相关文章
|
Java 数据库连接 mybatis
Mybatis使用in并返回返回List
Mybatis使用in并返回返回List
258 2
|
机器学习/深度学习 自然语言处理 达摩院
Rethinking Information Extraction :信息抽取的现状与未来
​ ##引言 从计算到感知再到认知是业内学者都认同的人工智能技术发展路径。机器具备认知智能,进而实现推理、规划乃至联想和创作,在一定程度上需要一个充满知识的大脑,而信息抽取是获取知识的重要途径之一。 在具体的业务场景如搜索推荐,结构化的领域知识有利于实现细粒度文本理解,有利于实现精准的复杂问答,有利于
6093 0
|
数据安全/隐私保护
基于SpringBoot+Vue+Java+Mysql 的简历招聘系统【源码】下
基于SpringBoot+Vue+Java+Mysql 的简历招聘系统【源码】
|
Arthas 缓存 Java
在 Windows 下的 Arthas 快速安装 | 学习笔记
快速学习在 Windows 下的 Arthas 快速安装
在 Windows 下的 Arthas 快速安装 | 学习笔记
|
数据采集 算法 关系型数据库
在 MySQL 中使用 SOUNDEX?
【8月更文挑战第6天】
259 0
在 MySQL 中使用 SOUNDEX?
|
Java 程序员
java截取字符串的几种方法
java截取字符串的几种方法
el-input实现后缀图标和clearable的兼容,调整el-input clearable与自定义图标展示位置问题
el-input实现后缀图标和clearable的兼容,调整el-input clearable与自定义图标展示位置问题
905 1
|
安全 关系型数据库 MySQL
基于SpringBoot+Vue+Mysql+Java 毕业生信息招聘平台系统(附源码)上
基于SpringBoot+Vue+Mysql+Java 毕业生信息招聘平台系统(附源码)