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 分钟前
dirsearch安装与配置:新手入门指南
网络·数据库·学习·学习方法·目录扫描·虚拟机工具
数据皮皮侠AI9 分钟前
顶刊同款!中国地级市风灾风险与损失数据集(2000-2022)|灾害 / 环境 / 经济研究必备
大数据·人工智能·笔记·能源·1024程序员节
墨^O^11 分钟前
C++ Memory Order 完全指南:从 relaxed 到 seq_cst,深入理解无锁编程与 happens-before
linux·开发语言·c++·笔记·学习·算法·缓存
阿荻在肝了11 分钟前
Agent学习五:LangGraph学习-节点与可控性
人工智能·python·学习·agent
玄米乌龙茶12319 分钟前
Web Search API 实操:构建智能搜索 Agent
人工智能·笔记·学习
Hical_W21 分钟前
深入学习CPP20_协程
学习·github
星幻元宇VR21 分钟前
VR党建互动平台助力党建学习提质增效
科技·学习·安全·vr·虚拟现实
XS03010622 分钟前
Java基础笔记(一)
java·笔记·python
海兰32 分钟前
Elasticsearch 容量规划与性能优化完全指南
大数据·elasticsearch·性能优化
梦想与想象-广州大智汇33 分钟前
告别“内存刺客”!sync-canal-go:轻量mysql实时同步数据到Elasticsearch‌,clickhouse,redis
mysql·elasticsearch·golang·同步数据