Lucene使用笔记

 

0 本文主要涉及

 

大致介绍了Lucene相关的知识点,然后记录了在基于Spring和SpringMVC的前后端分离的JavaWeb项目中实现了关键词反向索引搜索功能。

 

Lucene 简介

Lucene是什么?一个用Java语言实现的用于文档信息的反向索引的工具库。
反向索引又称为全文索引,可以实现文档的快速搜索。
与普通的根据id的数据库查找不同,反向索引会先把目标文档中的词分别提取出来组成索引(例如词的内容,词出现内容的id)这被称为分词倒排,然后在搜索某一个词时先搜索到有这个词语的id再去根据id找到对应的信息。

Lucene 的优点

索引文件格式独立于应用平台。Lucene 定义了一套以 8 位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。
在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。
优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。
设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。
已经默认实现了一套强大的查询引擎,用户无需自己编写代码即可使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search)、分组查询等等。

Lucnene主要类结构

org.apache.Lucene.analysis 文本分析器
org.apache.Lucene.document 搜索信息的逻辑结构
org.apache.lucene.geo      地理信息处理
org.apache.Lucene.index    索引相关
org.apache.Lucene.search   搜索 还包含 相似搜索,建议,高亮等
org.apache.lucene.store    底层IO存储结构
org.apache.Lucene.queryParser 查询分析器
org.apache.Lucene.util     一些工具类

Lucnene核心类

Directory 
索引的存储位置 常用有FSDirectory(文件)RAMDirectory(内存)

IndexWriter 
索引管理操作 增删改 通过配置IndexWriterConfig进行设置

Analyzer 
各种文本分析处理,例如中文分词等

Document 
被索引数据 分析处理后后抽象的被搜索信息

Field 
被索引数据中的属性 文本或数字内容,可以设置是否被索引是否保存Field,有多种FieldType
各种Field:BinaryDocValuesField, BinaryPoint, DoublePoint, DoubleRange, FloatPoint, FloatRan
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值