Lucene

微笑、不失礼 提交于 2019-12-01 01:29:31

一.全文检索

1.非结构化数据:这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)

2.应用场景:

对于数据量大、数据结构不固定的数据可采用全文检索方式搜索,比如百度、Google等搜索引擎、论坛站内搜索、电商网站站内搜索等。

3.流程:

二.程序实现:

1.创建索引:

  *环境:Lucene

第一步:创建一个java工程,并导入jar包。

第二步:创建一个indexwriter对象。

1)指定索引库的存放位置Directory对象

2)指定一个IndexWriterConfig对象。

第二步:创建document对象。

第三步:创建field对象,将field添加到document对象中。

第四步:使用indexwriter对象将document对象写入索引库,此过程进行索引创建。并将索引和document对象写入索引库。

第五步:关闭IndexWriter对象。

2.使用Luke工具查看索引文件

*Luke必须使用java-9来使用:M:\java\luke-7.4.0\target

3.查询索引库

第一步:创建一个Directory对象,也就是索引库存放的位置。

第二步:创建一个indexReader对象,需要指定Directory对象。

第三步:创建一个indexsearcher对象,需要指定IndexReader对象

第四步:创建一个TermQuery对象,指定查询的域和查询的关键词。

第五步:执行查询。

第六步:返回查询结果。遍历查询结果并输出。

第七步:关闭IndexReader对象

三.中文分析器

*将一句话分词

1.默认分析器:

StandardAnalyzer

*处理中文就是一个字一个字分离

2.中文分析器:

 SmartChineseAnalyzer:多词分离,支持度差

IKAnalyzer:支持度高

使用方法:

第一步:把jar包添加到工程中

第二步:把配置文件和扩展词典和停用词词典添加到classpath下

 

注意:hotword.dic和ext_stopword.dic文件的格式为UTF-8,注意是无BOM 的UTF-8 编码。

也就是说禁止使用windows记事本编辑扩展词典文件

*使用EditPlus编辑

*stopword:敏感词,无意义词

*hotword:添加新词

四.索引库的维护

五.ElasticSearch

*基于lucene开发的去哪问检索服务器

*lucene是一个API

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!