SpringBoot+Lucene第三篇——分词

Lucene的学习第三篇——分词


Lucene创建索引—分词
分词主要介绍这几个问题
 分词是什么?
 分词干嘛?
 分词怎么分?

疑问:

看完这篇,带着疑问看下一篇

下一篇的代码中,能找到aaabbb.txt文档,但是我们不能找到aaabbb文档,好像说明fileName只能进行了精确匹配。但是不能找到“XXXX.txt”文档,
说明不是精确匹配,而是在索引库中“全文检索.txt”或者“全文检索.txt”,” spring”这些词的索引。
同理:名字都这么麻烦,如果要搜索内容,岂不是更麻烦。所以要进行分词。
下篇文章第一段代码中:使用的是官方推荐的标准分词器
Analyzer analyzer=new StandardAnalyzer();//标准的分词器

分词就是将一句话,或者一段话,或者长词,分成一个一个的词语。比如:“全文检”索:分成:“全文”、“检索”、“全文检索”。
 分词干嘛?
分词后,就是对每个词建立索引,比如: “全文”、“检索”、“全文检索”。都建立了索引,那么你搜任意的这三个词语都能找到文档,同理,将文档内容分词,只要输入任意词。就能找到该文档。
 怎么分?

									 分词流程

分词的流程

举例说明

原文档内容(摘自官网):
Lucene is a Java full-text search engine. Lucene is not a complete
application, but rather a code library and API that can easily be used
to add search capabilities to applications.

分析后得到的词:
lucene、java、full、search、engine。。。。

大小变小写,
标点过滤,
停用词过滤,(is,a 等没有意义的单词或者字母)
引出新概念:语汇单元
lucene、java、full、search、engine等分出来的词叫做语汇单元。叫做term

总结:

1)将原始内容创建为包含域(Field)的文档对象,需要再对域中的内容进行分析,分析成为一个一个的单词。也就是分词
2)每个分出来的单词,就是一个语汇单元,就是term。注意:
3)每个term中包含两部分内容:一部分是文档对象的域名,一部分是term内容,
分词后得到term
不同的域中拆出来的相同的单词,不是同一个语汇单元 (思考为什么)
4)对所有文档分析得出的语汇单元进行索引,索引的目的是为了搜索,最终要实现只搜索被索引的语汇单元从而找到文档对象。
5)创建索引是对语汇单元索引,通过词语找文档,这种索引的结构叫倒排索引结构。

倒排索引结构就是反向索引结构,包括索引和文档两部分,索引即词汇表,它的规模较小,而文档集合较大。
理解倒排序是理解搜索是怎么实现的重要基础(由于比较抽象,难懂,我自己也不懂,暂不继续介绍)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kone.wang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值