Lucene的Field域、分词器

1.1 分词器介绍

  •  在对文档(Document)中的内容进行索引前,需要对域(Field)中的内容使用分析对象(分词器)进行分词 。分词的目的是为了索引,索引的目的是为了搜索。过程是先分词,再过滤。
  • 分词:将Document中Field域的值切分成一个一个的单词。具体的切分方法(算法)根据使用的 分词器而不同。
  • 过滤:去除标点符号,去除停用词(的、啊、是、is、the、a等),词的大写转换小写。

停用词说明:停用词是指为了节省存储空间和提高搜索效率,搜索引擎在索引内容或处理搜索请求时会自动忽略的字词,这些字或词被称为“stop words”。比如语气助词、副词、介词、连接词等等,通常自身没有明确的含义,只有放在一个上下文语句中才有意义,比如常见的有:的、在、是、啊、了、嘛、吗等。 

例如:

原始文档:Lucene is a Java full-text search engine

分析以后的词:lucene  java   full   text   search engine

1.2 分词器使用 

 1.2.1 索引流程使用

  • 把原始数据转换成文档对象后,使用分词器把文档域中的内容切分成一个一个的词语,目的是方便后续建立索引。

1.2.2 检索流程使用

  •  根据用户输入的搜索关键词,使用分词器对象分析以后吗,建立成查询对象(Query),在索引库中查找目标内容。
  • 注意事项:索引流程和检索流程使用的分词器要一致

1.3 中文分词器

 1.3.1 中文分词器介绍

我们知道英文本身是以单词为单位,单词与单词之间,句子之间通常是空格、逗号、句号分隔。因此对于英文,可以简单的以空格来判断某个字符串是否是一个词,比如:I love China,love和China很容易被程序处理。

但是中文是以为单位的,字与字再组成,词再组成句子中文:我爱中国,电脑不知道“爱中”是一个词,还是“中国”是一个词?所以我们需要一定的规则来告诉电脑应该怎么切分,这就是中文分词器所要解决的问题。常见的有一元切分法“我爱中国”:我、爱、中、国。二元切分法“我爱中国”:我爱,爱中、中国。

1.3.2 Lucene分词器(Lucene提供的分词器,在企业中不推荐使用)

  • StandardAnalyzer分词器

单字分词器:一个字切分成一个词,一元切分法。

  • CJKAnalyzer分词器

二元切分法:把相邻的两个字,作为一个词。

  • SmartChineseAnalyzer词库分词器

通常一元切分法,二元切分法都不能满足我们的业务需求。SmartChineseAnalyzer对中文支持较好,但是扩展性差,针对扩展词库、停用词均不好处理。(只能说明老外的中文不怎么样)。

 1.3.3 第三方的中文分词器

  • paoding:庖丁解牛分词器,最新版本在https://code.google.com/p/paoding/可以下载。由于没有持续更新,只支持到lucene3.0,项目中不予以考虑使用。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hyhcloud

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

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

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

打赏作者

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

抵扣说明:

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

余额充值