Elasticsearch初步认识

news/2024/9/23 10:17:22/

Elasticsearch初步认识

  • ES概述
  • 基本概念
  • 正向索引和倒排索引
  • IK分词器
    • ik_smart最少切分
    • ik_max_word为最细粒度划分
  • ES索引库基本操作
    • 对索引库操作
    • 对文档操作

ES概述

Elasticsearch,简称为 ES,是一款非常强大的开源的高扩展的分布式全文检索引擎,可以帮助我们从海量数据中快速找到需要的内容,它可以近乎实时的存储、检索数据.还可以可以实现日志统计、分析、系统监控等功能

基本概念

ES是面向文档存储,可以是数据库中的一条商品数据,一个订单信息
注:文档数据会被序列化为 json 格式后存储在 elasticsearch
在这里插入图片描述索引:同类型文档的集合
文档:一条数据就是一个文档,es 中是 Json 格式
字段:Json 文档中的字段
映射:索引中文档的约束,比如字段名称、类型
注:常见的 mapping 属性包括
type:字段数据类型,常见的简单类型有:
字符串:text(可分词的文本),keyword(精确值,例如:品牌,国家,邮箱)
数值:long、integer、short、byte、double、float、
布尔:boolean
日期:date
对象:object
index:是否创建索引参与搜索,默认为 true,如果不需要参与搜索设置为 false
analyzer:使用哪种分词器
在这里插入图片描述关系行数据库 MySQL 和 elasticsearch 对比
在这里插入图片描述
Mysql:擅长事务类型操作,可以确保数据的安全和一致性
Elasticsearch:擅长海量数据的搜索、分析、计算

正向索引和倒排索引

Mysql 采用正向索引:
基于文档 id 创建索引。查询词条时必须先找到文档,而后判断是否包含搜索的内容.
在这里插入图片描述
elasticsearch 采用倒排索引:
文档(document):每条数据就是一个文档
词条(term):文档按照语义分成的词语
在这里插入图片描述
在这里插入图片描述

IK分词器

**分词:**即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,然后进行一个匹配操作,默认的中文分词器是将每个字看成一个词,比如"我爱中国"会被分为"我",“爱”,“中”,“国”,这显然不符合要求,所以我们需要安装中文分词器IK来解决这个问题
注:IK提供了两个分词算法:ik_smart和ik_max_word

ik_smart最少切分

在这里插入图片描述

ik_max_word为最细粒度划分

在这里插入图片描述
注:还可以自定义分词(参考安装部分)
在这里插入图片描述
在这里插入图片描述

ES索引库基本操作

对索引库操作

1.创建索引库
在这里插入图片描述
在这里插入图片描述
2.通过GET请求获得具体信息

Get /new

在这里插入图片描述
3.修改索引库:
注:索引库和 mapping 一旦创建无法修改,但是可以添加新的字段
在这里插入图片描述
在这里插入图片描述
4.删除索引库

//DELETE /索引库名
DELETE /new

在这里插入图片描述

对文档操作

1.添加文档

POST /索引库名/_doc/文档 id
{ “字段名 1”:”值 1”
“字段名 2”:”值 2..... 
}

在这里插入图片描述
2.查询文档

//GET /索引库名/_doc/文档 id
GET /new/_doc/1

在这里插入图片描述
3.修改文档

POST /索引库名/_update/文档 id
{ "doc":{ 
"要修改的字段":"新值"}
}

在这里插入图片描述
在这里插入图片描述
4.搜索文档

GET /news/_search
{"query":
{"match":{"title":"美国"}
}
}

在这里插入图片描述
在这里插入图片描述
5.删除文档

//DELETE /索引库名/_doc/文档 id
DELETE /new/_doc/1

在这里插入图片描述


http://www.ppmy.cn/news/1455341.html

相关文章

【48天笔试强训】day18

题目1 描述 有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。 例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。 一月的时候有一只兔子,假如兔子都…

数塔问题(蛮力算法和动态规划)

题目:如下图是一个数塔,从顶部出发在每一个节点可以选择向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大,及路径情况。(使用蛮力算法和动态规划算法分别实现) #include…

【C++】 认识多态 + 多态的构成条件详细讲解

前言 C 目录 1. 多态的概念2 多态的定义及实现2 .1 虚函数:2 .2 虚函数的重写:2 .2.1 虚函数重写的两个例外: 2 .3 多态的两个条件(重点)2 .4 析构函数为啥写成虚函数 3 新增的两个关键字3.1 final的使用:3…

【RYG】Python技能练习场—查漏补缺(一)

1、列表删除元素 remove() 方法:该方法可以删除列表中指定的元素。例如:my_list.remove(3) 将删除列表中第一个出现的元素3。 pop() 方法:该方法可以删除指定位置的元素,并返回被删除的元素。例如:my_list.pop(0) 将…

python基础--常用函数

常用函数 内建函数 在python里面可以直接使用的函数, 不需要使用import从其他文件里面导入 可以使用dir(__builtin__)进行查看 输入输出 print打印信息 print(*objects, sep , end\n, filesys.stdout, flushFalse)objects – 复数,表示可以一次输出多个对象。…

【翻译】REST API

自动伸缩 API 创建或更新自动伸缩策略 API 此特性设计用于 Elasticsearch Service、Elastic Cloud Enterprise 和 Kubernetes 上的 Elastic Cloud 的间接使用。不支持直接用户使用。 创建或更新一个自动伸缩策略。 请求 PUT /_autoscaling/policy/<name> {"rol…

linux 单机安装consul

sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo && sudo yum -y install consul#添加consul配置文件 nano /etc/consul.d/server.json {"server": true,"boots…

STM32F4xx开发学习—GPIO

GPIO 学习使用STM32F407VET6GPIO外设 寄存器和标准外设库 1. 寄存器 存储器映射 存储器本身是不具有地址的&#xff0c;是一块具有特定功能的内存单元&#xff0c;它的地址是由芯片厂商或用户分配&#xff0c;给存储器分配地址的过程就叫做存储区映射。给内存单元分配地址之后…