快速熟悉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

相关推荐
mazhafener1231 小时前
智慧照明:集中控制器、单双灯控制器与智慧灯杆网关的高效协同
大数据
打码人的日常分享1 小时前
物联网智慧医院建设方案(PPT)
大数据·物联网·架构·流程图·智慧城市·制造
Lansonli3 小时前
大数据Spark(六十一):Spark基于Standalone提交任务流程
大数据·分布式·spark
Rverdoser4 小时前
电脑硬盘分几个区好
大数据
傻啦嘿哟4 小时前
Python 数据分析与可视化实战:从数据清洗到图表呈现
大数据·数据库·人工智能
Theodore_10224 小时前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
簌簌曌5 小时前
CentOS7 + JDK8 虚拟机安装与 Hadoop + Spark 集群搭建实践
大数据·hadoop·spark
冒泡的肥皂6 小时前
强大的ANTLR4语法解析器入门demo
后端·搜索引擎·编程语言
Theodore_10227 小时前
大数据(1) 大数据概述
大数据·hadoop·数据分析·spark·hbase
Aurora_NeAr7 小时前
Apache Spark详解
大数据·后端·spark