跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Apache Lucene
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= Apache Lucene = '''Apache Lucene''' 是一个高性能、功能全面的开源全文检索引擎库,由 [[Apache软件基金会]] 开发维护。作为 [[Java]] 编写的核心搜索库,Lucene 提供了强大的索引和搜索功能,是许多现代搜索引擎(如 [[Elasticsearch]] 和 [[Solr]])的基础技术。 == 概述 == Apache Lucene 最初由 Doug Cutting 于 1999 年创建,2001 年加入 Apache 项目。其主要特点包括: * 高性能的全文索引和检索能力 * 跨平台支持(基于 Java 实现) * 可扩展的架构设计 * 支持多种查询类型 * 丰富的分析器(Analyzer)生态系统 * 支持多种文档格式 Lucene 采用倒排索引(Inverted Index)技术实现高效搜索,其核心功能被封装为可嵌入的库,而非独立应用程序。 == 核心概念 == === 文档(Document) === Lucene 中的基本数据单元,包含多个字段(Field)。文档类似于数据库中的行记录。 === 字段(Field) === 文档的组成部分,包含字段名和字段值。字段可以是索引的、存储的或两者兼具。 === 索引(Index) === Lucene 使用倒排索引结构,将文档内容转换为可快速搜索的数据结构。 === 分析器(Analyzer) === 负责将文本转换为可索引的词项(Term),包括分词、过滤和标准化等处理步骤。 == 基本使用 == 以下是一个简单的 Lucene Java 示例,展示如何创建索引并进行搜索: <syntaxhighlight lang="java"> import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.StringField; import org.apache.lucene.document.TextField; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; // 创建索引 Directory directory = FSDirectory.open(Paths.get("/tmp/lucene-index")); StandardAnalyzer analyzer = new StandardAnalyzer(); IndexWriterConfig config = new IndexWriterConfig(analyzer); IndexWriter writer = new IndexWriter(directory, config); Document doc = new Document(); doc.add(new TextField("title", "Apache Lucene 入门指南", Field.Store.YES)); doc.add(new StringField("isbn", "123456789", Field.Store.YES)); writer.addDocument(doc); writer.close(); </syntaxhighlight> == 高级特性 == === 查询类型 === Lucene 支持多种查询类型,包括: * 布尔查询(BooleanQuery) * 短语查询(PhraseQuery) * 通配符查询(WildcardQuery) * 模糊查询(FuzzyQuery) * 范围查询(RangeQuery) === 评分机制 === Lucene 使用 [[TF-IDF]](词频-逆文档频率)算法计算文档相关性得分,支持自定义评分策略。 === 高亮显示 === 支持搜索结果中匹配内容的高亮显示,增强用户体验。 == 应用场景 == Apache Lucene 广泛应用于: * 企业级搜索引擎(如 Elasticsearch、Solr) * 文档管理系统 * 电子商务网站的产品搜索 * 内容管理系统(CMS)的搜索功能 * 日志分析系统 == 性能优化 == Lucene 提供了多种性能优化技术: * 索引合并策略 * 缓存机制(FieldCache 等) * 批量索引操作 * 内存索引(RAMDirectory) == 生态系统 == 基于 Lucene 构建的主要项目包括: * [[Elasticsearch]] - 分布式搜索和分析引擎 * [[Solr]] - 企业级搜索平台 * Nutch - 网络爬虫和搜索引擎 == 版本历史 == Lucene 的主要版本发布历史: * 1.0 (2000年) * 2.0 (2005年) * 3.0 (2009年) * 4.0 (2012年) * 5.0 (2015年) * 6.0 (2017年) * 7.0 (2018年) * 8.0 (2019年) * 9.0 (2021年) == 学习资源 == * [https://lucene.apache.org/ 官方文档] * 《Lucene in Action》(书籍) * 《深入理解Elasticsearch》(书籍) == 参见 == * [[全文检索]] * [[倒排索引]] * [[信息检索]] * [[Elasticsearch]] * [[Solr]] [[Category:搜索引擎]] [[Category:Java库]] [[Category:Apache软件基金会项目]] [[Category:开源软件]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)