Lucene使用详情笔记

1. 文档储存

基本流程

  1. 创建物理存储空间
  2. 创建文档对象 (参数是储存物理空间,也可以是多个文档的集合类,即为创建多个文档写入)
  3. 向文档中添加字段
  4. 创建索引写出器的配置对象 (分词器版本号,分词器)
  5. 创建索引写出器(第一个参数是配置对象,第二个参数是分词器)
  6. 索引写出器把文档写入物理空间内(多个文档时是:indexWriter.addDocuments(documents);)
  7. 提交
  8. 关流

如图:
文档储存
这里小熙使用的是物理硬盘上的存储空间,你也可以使用RAMDirectory将索引写入内存中。
小提示:储存的分词会直接提供给查询(如特殊查询的词条匹配查询),也是查询的必要条件

2. 文档删除

  1. 重复储存的1,4,5,6,7,8。而没有了创建文档添加字段的2,3过程,当然这也不是储存,没有是必然的。
  2. 只需在索引写出器那调用对应的删除方法即可(参数是分词器new Term(“字段”,“值”),由此去找到对应文档删除。或者也可以是查询对象Query,只不过是对于分词包装加工更灵活了)

如图:
文档删除

3. 文档更新

  1. 其实Lucene中没有所谓的更新方法,只不是找到对应的文档先删除后添加罢了
  2. 重复存储操作,只不过在索引器时调用更新方法(第一个参数是分词器,根据分词找到对应的文档。第二个参数是需要更新的文档)

如图:
文档更新

4. 文档搜索

这个搜索的种类和方式有些多
基本流程:

  1. 创建目录对象—物理位置
  2. 创建目录读取工具
  3. 创建索引搜索工具
  4. 创建查询解析器 (分查询单个字段和多个字段)
  5. 创建查询对象
  6. 查询文档记录对象
  7. 查询击中数
  8. 获取得分文档
  9. 读取对应ID的文档

基本查询
如图:
基本查询文档
在此之后我们可以把基本查询的查询对象Query提成方法参数,修改为传参的Search方法。

特殊查询

特殊查询,基于基础查询上拓展的功能。还是基于基本查询代码,只是把查询对象替换成了专职的Query对象。
在此小熙列举的特殊查询相较于基本查询少了分词器的使用(可根据储存时的分词查找),也就少了些查询灵活性,但功能和便捷性还是很大的。
词条匹配查询:
词条匹配
通配符搜索:
通配符搜索
模糊查询:
模糊查询
范围查询:
范围查询
布尔查询(综合查询):
布尔查询

5. 结果排序

对于查询结果排序,只是添加了一行排序规则定义的代码,和索引搜索工具搜索时多了一个排序的参数而已。下面基于基本查询举例:

排序查询

6. 查询结果中关键字高亮显示

在查询过后展示给用户时,为了匹配醒目大多都会高亮关键字。
也是基于查询操作显示的,创建一个高亮工具,在结果处通过高亮工具显示指定结果。
高亮关键字结果显示

7.提高匹配得分(人为操作修改)

在搜索时我们经常会使用排序查询,按匹配得分排序。那有什么方法可以把得分提高吗?其实是有的,由于得分是由得分算法确定的如图:
得分算法公式
所以我们可以操作boost(激励因子)来提高得分,如下图:
激励因子

好了小熙本次分享的基本Lucene使用笔记就到此结束了,下次还会分享进阶篇,Elasticsearch使用笔记分享。个人理解难免有些偏颇,如有误解,还请各位不吝赐教。
(本文仅供学习交流,如有转载请注明出处)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值