当前位置: 首页 > news >正文

Lucene及概念介绍

Lucene及概念介绍

  • 基础概念
  • 倒排索引
  • 索引合并
  • 分析
  • 查询语句的构成

基础概念

Document:我们一次查询或更新的载体,对比于实体类
Field:字段,是key-value格式的数据,对比实体类的字段
Item:一个单词,这个单词就是建立倒排索引的一项
Token:一个Item的一次匹配,包含Item、开始位置、结束位置、类型等信息。

倒排索引

在这里插入图片描述
倒排索引相当于做了两个操作:

  1. 分词
  2. 建立索引

分词就是把文本进行分割,形成多个小的Item,建立索引就是将分词和原数据建立关联关系。

索引合并

单个索引会分割成多个小块进行存储,而这些小块一经写入不会再更新。当我们的查询设计到多个小块时,查询效率会降低,因此需要合并多个小块来提升查询效率,这个操作就是索引合并。索引合并是需要占用IO的,因此一般不要强制索引合并

分析

原始Document拆分成倒排索引和新的查询语句拆分成允许被搜索的选项的操作都会涉及到”分析“

分词器:将文本进行分割,拆分成索引的工具

映射器:对文本进行处理,映射成其他数据

过滤器:对拆分后的文本进行过滤,例如隐私处理等。

三个部分的处理顺序如下:
在这里插入图片描述

查询语句的构成

查询语句主要分为term和操作符两部分,term就是分词的匹配项,而操作符用于描述本次查询的多个term之间的匹配关系

操作符作用
AND表示同时匹配关系
OR表示同时或关系
NOT表示同时否定匹配关系
+表示同时确认匹配关系
-表示否定匹配关系
()表示关系优先级绑定
?表示单字符通配
*表示多字符通配
~表示模糊查询
[]表示闭区间范围查询
{}表示开区间范围查询
http://www.lryc.cn/news/329551.html

相关文章:

  • 密码算法概论
  • 实时数仓之实时数仓架构(Hudi)
  • 2022-04-15_for循环等_作业
  • 脑机辅助推导算法
  • 【原创教程】三菱FX PLC控制FR-E740变频器
  • 重读Java设计模式: 深入探讨建造者模式,构建复杂对象的优雅解决方案
  • C语言数据结构易错知识点(6)(快速排序、归并排序、计数排序)
  • 使用 React Router v6.22 进行导航
  • 单链表的插入和删除
  • 全量知识系统 之“程序”详细设计 之 “絮”---开端“元素周期表”表示的一个“打地鼠”游戏
  • 【详细讲解WebView的使用与后退键处理】
  • 【Linux多线程】生产者消费者模型
  • Django屏蔽Server响应头信息
  • 前端对数据进行分组和计数处理
  • synchronized 和 lock
  • ssh 公私钥(github)
  • LangChain入门:8.打造自动生成广告文案的应用程序
  • AI如何影响装饰器模式与组合模式的选择与应用
  • 【C语言环境】Sublime中运行C语言时MinGW环境的安装
  • Ubuntu18.04 下Ublox F9P 实现RTK (利用CORS服务无需自建基站)
  • springboot+vue在idea上面的使用小结
  • MyEclipse将项目的开发环境与服务器的JDK 版本保持一致
  • 为BUG编程:函数重载的烦恼 char *匹配bool而不是string
  • C++第十四弹---模板初阶
  • C++--内联函数
  • java数组与集合框架(一) -- 数据结构,数组
  • React 应用实现监控可观测性最佳实践
  • 批处理(Batch)把Excel文件xls格式和xlsx格式进行互换
  • Adobe ColdFusion 任意文件读取漏洞复现(CVE-2024-20767)
  • 搜索与图论——Floyd算法求最短路