5分钟了解搜索引擎Lucene的原理

本文介绍了搜索引擎Lucene的全文检索原理,包括反向索引、数据分段和延迟写策略。通过反向索引实现快速搜索,数据分段提供写入优化,延迟写策略减少磁盘写入次数。此外,文章还探讨了段合并的重要性,以控制索引中的段数量,提高性能。
摘要由CSDN通过智能技术生成

5分钟了解搜索引擎Lucene的原理

场景

假设现在有10W+份word文档,让你做个web页面,给出关键词能快速搜索结果,你会怎么做?那至少有3种方案,

  1. 顺序扫描,每次检测文档中是否包含关键词,包含则加入结果列表,不包含继续查找下一个,直到找完为止。
  2. 将文档内容导入数据库,用SQL的like关键词搜索。
  3. 用Lucene做全文检索。

你会选哪种?首先顺序扫描在数据量大的时候太慢,数据量比较少的话可行;导入数据库数据量太大用like会引起全表扫描也会很慢,那当然是第三种,因为搜索引擎Lucene就是专门为这种场景设计的:大量的,分结构化数据的快速搜索

看看官网怎么对Lucene的介绍

可扩展,高性能的索引过程

强大,准确和高效的搜索算法

  • 排名搜索——最好的结果优先返回
  • 许多强大的查询类型:短语查询,通配符查询,接近查询,范围查询等
  • 针对不同的域搜索(例如标题、作者、内容)
  • 对任何域进行排序
  • 具有合并结果的多索引搜索
  • 允许同步更新和搜索
  • 插拔式的排名模型, 包括 Vector Space ModelOkapi BM25
  • 可配置的存储引擎

全文检索原理

全文检索原理很简单,就拿新华字典做比喻,假设字典没有索引页,你要找一个字的解释你就得一页一页翻,直到找到为止,这效率可想而知

现在有了索引页,就可以根据拼音首字母或偏旁部首快速定位到目标字在哪一页,这个索引页,就是全文检索核心。

简而言之:在非结构化数据中,将一部分结构化信息抽取出来,重新组织,然后针对这部分有结构的数据进行索引建立,从而达到加速查询的目的。那么

  1. 索引存啥?怎么存?(对应字典的索引页部分)

  2. 数据怎么存࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码狂魔v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值