Lucene中的核心术语

简介: Lucene中的核心术语

  Lucene中的核心术语。

  ▪️Term:是索引里最小的存储和查询单元,对于英文来说一般是指一个单词,对于中文来说一般是指一个分词后的词。

  ▪️词典(Term Dictionary,也叫作字典):是Term的集合。词典的数据结构可以有很多种,每种都有自己的优缺点,比如:排序数组通过二分查找来检索数据:HashMap(哈希表)比排序数组的检索速度更快,但是会浪费存储空间;fst(finite-state transducer)有更高的数据压缩率和查询效率,因为词典是常驻内存的,而fst有很好的压缩率,所以fst在Lucene的最新版本中有非常多的使用场景,也是默认的词典数据结构。

  ▪️倒排序(Posting List):一篇文章通常由多个词组成,倒排表记录的是某个词在哪些文章中出现过。

  ▪️正向信息:原始的文档信息,可以用来做排序、聚合、展示等。

  ▪️段(segment):索引中最小的独立存储单元。一个索引文件由一个或者多个段组成。在Luence中的段有不变性,也就是说段一旦生成,在其上只能有读操作,不能有写操作。

   Lucene的底层存储格式如图5-2所示。图5-2由词典和倒排序两部分组成,其中的词典就是Term的集合。词典中的Term指向的文档链表的集合,叫做倒排表。词典和倒排表是Lucene中很重要的两种数据结构,是实现快速检索的重要基石。词典和倒排表是分两部分存储的,在倒排序中不但存储了文档编号,还存储了词频等信息。

目录
相关文章
|
3月前
|
SQL API 数据库
揭开高效数据层构建的秘密武器:Entity Framework Core 分页查询的最佳实践与性能优化技巧全解析
【8月更文挑战第31天】本文以随笔形式详细探讨了如何在Entity Framework Core中实现分页查询的最佳实践。通过创建基于EF Core的项目,配置数据库上下文,并定义领域模型,文章展示了如何使用`Skip()`和`Take()`方法进行分页查询。此外,还介绍了如何使用惰性加载、显式加载和预加载来优化性能,并通过投影技术减少不必要的数据加载。最后,文章强调了分页查询对于提升应用性能和用户体验的重要性。
65 0
|
4月前
|
存储 搜索推荐 Java
使用Java构建高效的搜索引擎索引
使用Java构建高效的搜索引擎索引
|
5月前
|
存储
提升编程效率的利器: 解析Google Guava库之集合篇RangeMap范围映射(六)
提升编程效率的利器: 解析Google Guava库之集合篇RangeMap范围映射(六)
|
分布式计算 算法 Java
白话Elasticsearch16-深度探秘搜索技术之使用原生cross-fiedls技术解决搜索弊端
白话Elasticsearch16-深度探秘搜索技术之使用原生cross-fiedls技术解决搜索弊端
100 0
|
存储 数据采集 自然语言处理
lucene 索引流程详细分析|学习笔记
快速学习 lucene 索引流程详细分析
153 0
lucene 索引流程详细分析|学习笔记
|
存储 SQL 自然语言处理
lucene从理论到实践
lucene从理论到实践
198 0
|
存储 人工智能 自然语言处理
看Lucene源码必须知道的基本概念
下面的一些基本概念不但有助于看源码,在使用像solr这样的搜索引擎框架的时候还可以知道自己的配置都做了些什么事情。我在定义这些概念的时候也都有自己的理解和思考。
看Lucene源码必须知道的基本概念
|
存储 自然语言处理 运维
搜索lucene概念扫盲
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。本篇回归基础,从概念介绍起。
138 0
|
存储 自然语言处理 分布式计算
Solr\Lucene优劣势分析
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。
300 0
|
存储 Java Apache