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

相关推荐
IT199517 分钟前
Qt笔记-获取HTTP的POST请求提交的数据时需要注意的地方(2024-09-02)
笔记·qt·http
mljy.29 分钟前
C++《二叉搜索树》
c++·学习
大佬,救命!!!38 分钟前
自动化unittest框架
开发语言·笔记·python·算法·pycharm·自动化·unittest
企业通用软件开发1 小时前
大语言模型提示词工程学习--写小说系列(文心一言&豆包&通义千问):1~创作前的准备工作
人工智能·学习·语言模型
GIS开发特训营1 小时前
ArcGIS API for Javascript学习
javascript·学习·arcgis·gis开发·webgis·三维gis
一只小菜鸡..1 小时前
241125学习日志——[CSDIY] [ByteDance] 后端训练营 [18]
学习
Java 第一深情1 小时前
Linux上安装单机版Kibana6.8.1
elasticsearch·kibana
虾球xz1 小时前
游戏引擎学习第23天
学习·游戏引擎
rollingman2 小时前
WPF 学习《一》
学习·wpf·listview