小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI

本文讨论了单节点复现脚本与命令记录,基于Lucene和Elasticsearch的官方文档与源码。建议在Linux或WSL2环境中运行Elasticsearch 8.x或Lucene示例工程,并提供了具体的实验步骤和版本号,以确保实验结果的准确性。

search-engine reproduce notes

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T16:01:13Z

本文是「全文检索引擎」系列的第一篇,探讨了倒排索引的架构与实现,分析了Lucene与Elasticsearch的关系,阐述了文本如何处理成可搜索的词项,以及查询在倒排列表中的执行方式。文章还区分了不同类型的搜索引擎,强调了全文检索引擎在文本与查询处理中的复杂性和重要性。

【全文检索引擎】全文引擎全景:架构叙事与 Lucene 内核之间的一层

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文探讨了Lucene 9.x/10.x中的索引结构,重点介绍了Document、Field、docID及其在倒排和正排索引中的作用。Lucene通过独立的开关管理字段的索引、存储和DocValues,支持多种查询方式。同时分析了Elasticsearch与Lucene的映射关系,以及文档的业务主键和排序聚合的处理方法。

【全文检索引擎】Lucene 文档模型:Field、docID 与正排/倒排

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文讨论了BM25算法在全文检索中的应用,分析了其公式、参数及与TF-IDF的区别。BM25通过饱和TF和长度归一解决了传统TF在长文档中的失效问题,并提及了Lucene和Elasticsearch的实现细节,强调了BM25在召回和可解释性方面的重要性。此外,文章探讨了BM25与学习排序的关系及其在实际应用中的工程边界。

【全文检索引擎】BM25 与 Similarity:公式如何落到 Lucene

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文探讨了全文检索引擎的架构,重点分析了Lucene和Elasticsearch的设计与实现,包括倒排索引、文档模型、分析链、BM25打分机制和近实时刷新等关键概念,适合搜索引擎工程师和研究生深入理解搜索系统的内部运作。

【全文检索引擎】Lucene · BM25 · Segment · Elasticsearch NRT

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文讨论了Lucene文档模型中分析器对中文分词的影响。不同分析器(如StandardAnalyzer、ICU和IK插件)会导致不同的词项集合,从而影响索引和查询结果。文章强调索引和查询使用相同分析器是确保搜索结果一致性的关键。中文分词依赖于词典和模型,Lucene本身不提供生产级中文分词,常用插件如IK和jieba可热更新词典。分析器的选择和配置对性能和召回率有重要影响。

【全文检索引擎】分析链 Analyzer:从文本到 TokenStream

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文讨论了Lucene中的近实时搜索(NRT)机制,重点介绍了IndexWriter的文档缓冲、flush和Segment管理。文档通过addDocument进入RAM缓冲,flush后生成不可变Segment,查询时可通过DirectoryReader.open(IndexWriter)访问已flush的文档。NRT允许在未commit的情况下进行搜索,并强调flush与refresh的区别,以及Elasticsearch在此基础上的实现。

【全文检索引擎】IndexWriter 与 NRT:从缓冲到可打开的 Reader

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文讨论了Lucene的TieredMergePolicy及其在段合并中的作用。Lucene段文件不可原地更新,删除文档通过liveDocs标记为“死”,物理空间回收需待合并。TieredMergePolicy通过分层合并段,平衡写放大与查询性能。整体上,删除与合并策略影响存储效率与查询性能。

【全文检索引擎】MergePolicy 与删除:段合并与 liveDocs

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文探讨了Lucene中的查询执行过程,重点介绍了BooleanQuery与BooleanScorer的实现,以及通过两阶段迭代优化查询效率。采用galloping和impacts等技术,减少无效文档处理,提高搜索性能,并讨论了分布式查询中的优化策略和开放问题。

【全文检索引擎】查询执行:BooleanScorer、两阶段与 Collector

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文探讨了Elasticsearch和Lucene中DocValues的使用,强调其在排序和聚合中的重要性。DocValues以列式存储优化字段访问,适合高效的排序和聚合操作,而stored字段则用于获取原文。使用DocValues可以提高查询性能,避免对分析文本字段进行聚合的误区,并讨论了设计时的注意事项和未来的开放问题。

【全文检索引擎】DocValues 与 stored fields:排序聚合为何不走倒排

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z

本文讨论了在Elasticsearch和Lucene中结合稀疏BM25与稠密kNN进行混合检索的策略,重点分析了两种索引的共存、查询策略及其对性能的影响。混合检索需同时利用BM25和kNN信号,以确保候选文档的一致性和可比性。文章还探讨了写入路径、代价模型及与专用向量引擎的边界问题,强调了统一Segment生命周期的重要性。

【全文检索引擎】混合检索边界:BM25 与 dense_vector

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-15T00:00:00Z
为什么OpenSearch 3.0是您现在必备的升级

OpenSearch 3.0正式发布,基于Apache Lucene 10,性能提升显著,查询延迟降低60%。新界面更直观,支持用户定制工作区,架构模块化,便于开发和维护。迁移简单,鼓励团队尽快升级以享受更强大的功能和支持。

为什么OpenSearch 3.0是您现在必备的升级

The New Stack
The New Stack · 2025-07-24T17:00:12Z
什么是Apache Lucene?揭示开源商业模式、资金和社区

Apache Lucene是一个高性能的开源文本搜索库,广泛应用于内容管理和企业搜索。尽管面临可扩展性和资金可持续性挑战,Lucene仍在不断创新,未来可能结合区块链和人工智能技术,推动搜索技术的发展。

什么是Apache Lucene?揭示开源商业模式、资金和社区

DEV Community
DEV Community · 2025-05-11T06:35:33Z
Lucene与KQL的比较

KQL和Lucene是Elasticsearch的查询语言。KQL适合初学者,Lucene适合特定聚合。两者支持模糊搜索、正则表达式和范围查询。KQL不区分大小写,而Lucene区分。使用时需注意性能和嵌套字段的语法。

Lucene与KQL的比较

DEV Community
DEV Community · 2025-05-01T14:20:10Z
Elastic平台8.18和9.0:ES|QL查找连接已上线,Lucene 10也来了!

Elastic 8.18和9.0版本推出了ES|QL查找连接和Lucene 10等新功能,提升了查询性能和日志管理效率。ES|QL简化了数据丰富过程,支持安全和可观察性分析。新版本默认启用logsdb索引模式,优化了大规模日志处理的存储和查询性能。

Elastic平台8.18和9.0:ES|QL查找连接已上线,Lucene 10也来了!

Elastic Blog - Elasticsearch, Kibana, and ELK Stack
Elastic Blog - Elasticsearch, Kibana, and ELK Stack · 2025-04-15T00:00:00Z
在Java应用中集成Hibernate Search进行全文搜索

本文介绍了如何在Java 8+应用中集成Hibernate Search进行全文搜索,分为基础知识和示例项目,展示复杂用例及自定义分析器的使用。Hibernate Search简化了全文搜索的实现,支持Elasticsearch和Lucene,但需注意数据同步问题。提供两种查询方式:直接从Elasticsearch获取数据或先获取索引再从数据库检索。

在Java应用中集成Hibernate Search进行全文搜索

DEV Community
DEV Community · 2025-04-12T17:58:14Z
Lucene.Net 分布式索引实现方案

Lucene.Net 是一款单机全文搜索引擎,支持通过架构设计实现分布式索引。在主从复制方案中,主节点负责写入并定期同步到从节点,适合读多写少的场景。RabbitMQ 的 Fanout 模式可实现消息广播,适用于通知和日志收集,具有快速解耦和扩展的优点。

Lucene.Net 分布式索引实现方案

忘忧 忘忧的小站
忘忧 忘忧的小站 · 2025-03-05T02:43:56Z
优化Uber的搜索基础设施:升级至Apache Lucene 9.5

Uber工程团队将搜索基础设施从Apache Lucene 8.0升级到9.5,提升了搜索能力和效率。新架构包含服务层和摄取层,支持实时更新和离线处理。升级后,搜索速度提高30%,CPU使用降低,基础设施成本减少。

优化Uber的搜索基础设施:升级至Apache Lucene 9.5

InfoQ
InfoQ · 2024-11-08T19:30:00Z

搜索引擎通过索引和检索算法快速找到信息。Apache Lucene是一个用Java编写的开源库,是ElasticSearch和Solr的基础。Lucene的搜索技术包括查询预处理、倒排索引搜索、文档评分和结果排序。查询经过分词、标准化、去除停用词和词干提取,然后根据TF-IDF权重检索相关文档,并按得分排序显示最相关结果。

使用Python探索Apache Lucene:理解搜索引擎机制

DEV Community
DEV Community · 2024-10-09T03:41:46Z
腾讯云Elasticsearch 优化Lucene性能:高性能缓存的读写锁解决方案

腾讯云针对Elasticsearch中的Lucene缓存系统锁争用问题提出了读写锁优化方案,显著提升了性能。该方案允许多个线程同时读取数据,确保写操作的独占性,增强了查询效率。此优化已纳入Lucene主分支,预计将在向量检索、BM25评分和范围查询等场景中带来显著性能提升,推动Elasticsearch在生成式AI应用中的发展。

腾讯云Elasticsearch 优化Lucene性能:高性能缓存的读写锁解决方案

Elastic Blog
Elastic Blog · 2024-08-20T00:00:00Z
  • <<
  • <
  • 1 (current)
  • 2
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 模力方舟 Gitee AI 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码