lucene(1)lucene7.3.1 入门笔记

简介

最近项目要使用solr,solr是基于lucene开发的,而我这方面的知识还停留在lucene2.x版本的,不得不承认,不知不觉中,lucene已经7.x版本了。出于项目和个人方面的原因,打算利用点时间补充。
我使用的是lucene7.3.1版本、jdk1.8、eclipse4.7

lucene是一个全文检索的工具包。是apache下的开源项目。它使用的索引结构是倒排索引表又叫反向索引结构。
非倒排索引是在一直的文档中根据关键字逐个匹配扫描
倒排索引根据关键字匹配索引中的词,根据匹配的词找到文档。
倒排索引表包括:索引域和文档域。
文档域的作用:将数据结构化存储到索引文件中。
索引域的作用:为了搜索。

lucene 索引与like区别

数据库like方式查询时全表扫描的,数据量少这样也能忍受,如果数据量上,这种方式会很慢。
Lucene是倒排索引,使用lucene建立一个索引库,一次建立多次使用。索引对应document,检索速度很快、性能也很好。

lucene下载地址

http://archive.apache.org/dist/lucene/java/

lucene官方参考文档

http://lucene.apache.org/core/7_3_1/index.html

如何使用lucene

  1. 创建项目导入相关jar
  2. 采集数据(文档、数据库等数据)
  3. 将采集的数据统一结构化处理,创建成Document对象
  4. 使用分词器对field内容进行分词处理
  5. 使用IndexWriter创建索引
  6. 创建查询语句
  7. IndexSearcher搜索索引
  8. IndexSearcher搜索完毕返回TopDocs,Topdocs中存储了匹配相关度最高前n条记录

理解lucene中的Field

Field是文档中的域,包括Field名和Field值两部分,一个Document可以包括多个Field,Field值即为要索引的内容,也是要搜索的内容。

Field有几个概念:

  • 是否分词 :在搜索的时候,通常输入的是关键词,这个是否分词的意思是,是否将改field的值进行分词还是作为一个整体不分词搜索。在实际需求中,比如id、身份证号、订单号、这些是不需要分词,直接作为一个整体搜索即可
  • 是否索引:意思就是是否建立索引,如果建立索引,那么搜索的时候可以检索到,大多数情况,如果进行分词,也会进行索引。这样分词才有意义。
  • 是否存储:是否将内容存储到索引中,是否存储看需求,如果存储,搜索结果中可以获取到存储的内容,反之不可以。

luke工具

1.下载地址

https://github.com/DmitryKey/luke/releases

2.启动

luke.bat 双击即可启动

3.luke介绍
https://blog.csdn.net/dac55300424/article/details/24322907

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值