Lucene 中的部分概念

简介

ucene是一套用于全文检索和搜寻的开源程序库,由Apache软件基金会支持和提供

Lucene提供了一个简单却强大的应用程序接口(API),能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开放源代码工具

Lucene并不是现成的搜索引擎产品,但可以用来制作搜索引擎产品

什么是全文检索?

在这里插入图片描述

什么是倒排索引

索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址

索引数据量爆炸解决方式

在这里插入图片描述
不存储数据,只存储能索引到数据的key
在这里插入图片描述

分词

在这里插入图片描述

根据语义的需要,将句子划分成不同的分词,统计分词出现的频率和位置.

在这里插入图片描述

一次简单的搜索流程

假设我们搜索谷歌地图之父,搜索流程会是这样

分词插件将句子分为3个分词 谷歌,地图,之父
将这3个分词拿到倒叙索引中去查找(会很高效,比如二分查找),如果匹配到了就拿对应的文档id,获得文档内容

但是,如何确定结果顺序?

这里要引入_score的概念,对于分词的匹配,lucene会对其打分,得分越高,排名越靠前.这里要介绍几个相关的概念

TF(term frequency),词频,分词在当前document中出现的频率,一个分词在当前document中出现5次要比出现1次更相关,打分也会更高
IDF(inverse doucment frequency),逆向文档频率,term在所有document中出现的频率,这个频率越高,该term对应的分值越低
字段长度归一值,简单来说就是字段越短,字段的权重越高, 比如 term 我在匹配 我123和我123456时,我123的得分会更高.

Lucene缺点:

Lucene 的内建不支持群集
封闭设计的API使得扩展Lucene变得很困难

参考:https://www.jianshu.com/p/d68197bc7def

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值