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详解

相关推荐
ʚ希希ɞ ྀ10 分钟前
SpringBoot的学习
java·spring boot·学习
新子y21 分钟前
【小白笔记】岛屿的周长(Island Perimeter)
笔记·python
霜绛26 分钟前
Unity:UGUI笔记(一)——三大基础控件、组合控件
笔记·学习·unity·游戏引擎
代码or搬砖42 分钟前
Git学习笔记(三)
笔记·git·学习
阿维的博客日记1 小时前
Redis学习笔记-QuickList
redis·笔记·学习
Moniane1 小时前
CSDN:打造专业的技术名片
学习
CappuccinoRose2 小时前
MATLAB学习文档(二十四)
学习·数学建模·matlab·数据可视化
菜鸟‍2 小时前
【前端学习】仿Deepseek官网AI聊天网站React
前端·学习·react.js
今天只学一颗糖2 小时前
Linux学习笔记--GPIO子系统和PinCtrl子系统
linux·笔记·学习
lingggggaaaa2 小时前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全