快速熟悉ElasticSearch的基本概念

1.全文检索

全文检索是通过文本内容进行全面搜索的技术。通过全文检索可以快速地在大量文本数据中查找包含特定关键词或者短语的文档,并且返回相关的搜索结果。

检索和查询的区别

  • 检索没有搜索条件边界,检索的结果取决于相关性,相关性计算无明确边界性条件,比如同义词、谐音、别名等等都可以作为相关性的判断依据。
  • 查询有搜索条件边界,举个例子:现在有张 t 表,我要查询 t 表中的所有字段且查询条件是 id = 1,age = 18
    ,那么我写出来的sql语句就是这样的
    select * from t1 where id = 1 and age = 18;
    这个时候age = 18,id = 1都是搜索的条件边界。

总结:检索和查询的区别就在于有没有搜索条件边界。

2.倒排索引

在讲倒排索引之前先讲一下什么是正排索引。

正排索引是将文档按照顺序排列并且进行编号的索引结构,在正排索引中可以根据编号快速的寻找到对应的文档资料。

倒排索引以单词或者短语建立的索引结构。

倒排索引的建立**是先对文档进行分词处理,然后记录每个单词在哪些文档中出现,以及出现的位置信息。**通过倒排索引,可以根据关键词或者短语快速的找到包含这些词语的文档。

3.ElasticSearch的介绍

ElasticSearch是开源的分布式搜索和数据分析引擎,它专门用于处理大规模的文本数据和实现高性能的全文检索,如果有要实现搜索的场景,那么ElasticSearch是一个很好的选择。

核心概念

索引

索引可以类比为关系型数据库的 ,也就是database

类型

类型对应于索引来说是内部的逻辑分区,一个索引内部可以对应一个或者多个类型。可以类比为数据库中的

文档

文档实际上就是真正存储数据的东西,这里面存储了我们真正的内容,一般是json格式的数据。

每个文档都有一个类型和id,一个文档里面多个字段。

mapping

"mapping" 是用于定义索引中数据的结构和字段类型的过程。它类似于数据库中的表结构定义。可以理解为关系型数据库中表的结构定义

dart 复制代码
PUT /user1
{
	"mappings": {
		"dynamic": "true",
		"properties": {
			"name": {
				"type": "text"
			},
			"address": {
				"type": "object",
			}
		}
	}
}
PUT /user2
{
	"mappings": {
		"dynamic": "false",
		"properties": {
			"name": {
				"type": "text"
			},
			"address": {
				"type": "object",
			}
		}
	}
}
PUT /user3
{
	"mappings": {
		"dynamic": "strict",
		"properties": {
			"name": {
				"type": "text"
			},
			"address": {
				"type": "object",
			}
		}
	}
}

这里我设置了两个字段一个name,一个address,将他们的类型设置为text类型

如果我将某个文档的"dynamic"设置为strict或者false,那么就当有新字段的文档插入到这个索引里面来就会报错(类似于关系型数据库,如果往一个不存在的字段插入值那么肯定是会报错的),但是如果设置为true的话,Elasticsearch 将自动检测到新的字段,并为它们创建映射。

flied

flied也就是字段了,一个文档包含多个字段,每个字段都有自己的名称和类型。

dsl

实际上对应到关系型数据库就是sql

相关推荐
Elastic 中国社区官方博客1 小时前
如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
大数据·elasticsearch·搜索引擎·云计算·全文检索·可用性测试·aws
掘金-我是哪吒1 小时前
微服务mysql,redis,elasticsearch, kibana,cassandra,mongodb, kafka
redis·mysql·mongodb·elasticsearch·微服务
Aloudata2 小时前
从Apache Atlas到Aloudata BIG,数据血缘解析有何改变?
大数据·apache·数据血缘·主动元数据·数据链路
水豚AI课代表2 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc
研究是为了理解3 小时前
Git Bash 常用命令
git·elasticsearch·bash
拓端研究室TRL5 小时前
【梯度提升专题】XGBoost、Adaboost、CatBoost预测合集:抗乳腺癌药物优化、信贷风控、比特币应用|附数据代码...
大数据
黄焖鸡能干四碗5 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书
编码小袁5 小时前
探索数据科学与大数据技术专业本科生的广阔就业前景
大数据
WeeJot嵌入式6 小时前
大数据治理:确保数据的可持续性和价值
大数据
晨欣6 小时前
Elasticsearch和Lucene之间是什么关系?(ChatGPT回答)
elasticsearch·chatgpt·lucene