ElasticSearch学习了解笔记

搜索引擎的原理:

1、查询分析(自然语言处理)理解用户需求

2、分词技术

3、关键词搜索匹配

4、搜索排序


lucence

Lucene 是一个成熟的权威检索库

Elasticsearch 的搜索原理简单过程是,索引系统通过扫描文章中的每一个词,对其创建索引,指明在文章中出现的次数和位置,当用户查询时,索引系统就会根据事先的索引进行查找,并将查找的结果反馈给用户的检索方式。


倒排索引技术

数据结构,主要作用是从文档中提取关键词,并建立关键词到文档的映射关系。

在倒排索引中,每个关键词都关联着包含该关键词的文档列表,这使得搜索操作能够迅速定位包含特定关键词的文档,从而大幅提高查询效率。

  • 词典(Dictionary):包含所有在文档集中出现的关键词。
  • 倒排列表(Inverted List):对于每个关键词,记录包含该关键词的文档ID列表及其在文档中的位置信息。

倒排索引的步骤:

词条化(Tokenization):将文档拆分为单词,并进行规范化处理(如转小写、去除停用词等)。

建立词典:提取所有文档中的唯一单词。

创建倒排列表:记录每个单词在各个文档中的出现位置。


分词器

Elasticsearch是一个流行的搜索引擎库,它使用了一种基于Lucene的全文搜索引擎。在其内置的分词器中,有几种标准的选择:

  1. 标准分词器 (StandardTokenizer):这是默认的分词器,适用于大多数英语文本。它将连续的字母字符视为单词,并处理标点符号、数字和特殊字符。它会根据空格、换行符等进行分割。

  2. 雪崩分词器 (SnowballAnalyzer):基于Lucene的Snowball算法,用于对英文进行更复杂的词形还原(Stemming),即将单词的不同形式归并为其基本形式,比如"running"会被转化为"run"。

  3. 拼音分词器 (PhoneticTokenFilter):针对汉字拼音,将其转换成一种标准化的拼音表示,以便于搜索。

  4. IK分词器:虽然不是Elasticsearch的标准,但IK Analyzer是一种广泛使用的第三方插件,支持更多的中文分词规则,包括全拼、简拼、词组分词等。

  5. 自定义分词器:用户还可以创建自定义的tokenizer和filter,根据特定场景的需求来进行词元的划分和处理。

每种分词器都有其适用的文本类型和场景,选择合适的分词器能提高搜索效果。使用analyzer属性可以在索引文档时指定使用哪种分词器。

ElasticSearch详解

相关推荐
在未来等你3 小时前
Elasticsearch面试精讲 Day 17:查询性能调优实践
大数据·分布式·elasticsearch·搜索引擎·面试
Hello_Embed5 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中5 小时前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
Grassto6 小时前
RAG 从入门到放弃?丐版 demo 实战笔记(go+python)
笔记
Magnetic_h6 小时前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
研梦非凡7 小时前
ICCV 2025|从粗到细:用于高效3D高斯溅射的可学习离散小波变换
人工智能·深度学习·学习·3d
limengshi1383928 小时前
机器学习面试:请介绍几种常用的学习率衰减方式
人工智能·学习·机器学习
知识分享小能手8 小时前
React学习教程,从入门到精通,React 组件核心语法知识点详解(类组件体系)(19)
前端·javascript·vue.js·学习·react.js·react·anti-design-vue
周周记笔记9 小时前
学习笔记:第一个Python程序
笔记·学习
丑小鸭是白天鹅9 小时前
Kotlin协程详细笔记之切线程和挂起函数
开发语言·笔记·kotlin