Elasticsearch介绍以及基本操作

目录

一、Elasticsearch介绍

二、关于Elasticsearch的基本操作

(1)索引操作

(2)文档操作

三、域的属性

(1)index

(2)type

(3)store


一、Elasticsearch介绍

Elasticsearch 是一个开源的分布式搜索和分析引擎,最初由 Elasticsearch N.V. 公司(现在是 Elastic 公司)开发。它基于 Apache Lucene 引擎构建,提供了强大的全文搜索、分析和数据可视化功能。以下是 Elasticsearch 的一些基本介绍:

  1. 分布式架构: Elasticsearch 是一个分布式系统,允许你在多个节点上水平扩展,以处理大规模的数据和查询。这种分布式特性使其适用于大型数据集和高吞吐量的应用。

  2. 全文搜索: Elasticsearch 提供了高效的全文搜索功能,支持复杂的查询、过滤和排序。它能够在大量数据中快速定位相关的文档。

  3. 实时数据分析: Elasticsearch 支持实时数据分析,可以迅速处理和分析大量的实时数据。这对于监控、日志分析和实时仪表板非常有用。

  4. 多种数据类型: Elasticsearch 支持多种数据类型,包括文本、数值、日期、地理位置等。这使得它适用于各种类型的数据分析应用。

  5. 灵活的数据模型: Elasticsearch 使用 JSON 格式存储文档,这种灵活的数据模型允许你动态地定义文档结构。字段映射可以自动根据文档内容进行调整。

  6. RESTful API: Elasticsearch 提供基于 RESTful API 的接口,使得与各种编程语言和工具的集成变得非常容易。通过 HTTP 请求,你可以执行索引、查询、删除等操作。

  7. 数据聚合: Elasticsearch 支持强大的数据聚合功能,可以对文档进行统计、汇总和分组,以便生成有关数据的复杂分析。

  8. 开源和社区支持: Elasticsearch 是开源的,拥有强大的社区支持。它的源代码可以在 GitHub 上找到,社区提供了丰富的文档和论坛,方便用户获取帮助和分享经验。

  9. Elastic Stack(ELK Stack): Elasticsearch 通常与 Logstash 和 Kibana 一起使用,构成了 Elastic Stack(以前称为 ELK Stack)。Logstash 用于数据采集和预处理,Kibana 用于数据可视化和仪表板构建,与 Elasticsearch 一起提供了完整的日志和数据分析解决方案。

总体而言,Elasticsearch 是一个功能强大、灵活且易于使用的搜索和分析引擎,广泛应用于全文搜索、日志分析、监控、业务分析等各种领域。

二、关于Elasticsearch的基本操作

(1)索引操作

(1)创建没有结构的索引

PUT /student(student是索引的名字)

(2)为没有结构的索引添加结构

POST /student/_mapping
{"properties":{"id":{"type":"integer"},"name":{"type":"text"},"age":{"type":"integer"}}
}

(3)也可以一开始创建的索引就是有结构的

PUT /student
{"mappings": {"properties": {"stuName":{"type": "text"},"stuNo":{"type": "integer"}}}
}

(4)删除索引

DELETE /student(索引名)

(2)文档操作

这里我个人对于文档的理解就是数据库中的具体数据的意思,id值的不同和唯一性标志了每一个数据。

(1)新增/修改文档

POST /索引/_doc/[id值]
{"field名":field值
}注:id值不写时自动生成文档id,id和已有id重复时修改文档
POST /student/_doc/1
{"id":120,"name":"rb","age":10
}

(2)根据id查询文档

GET /索引/_doc/id值具体的举例:
GET /student/_doc/1

(3)删除文档

DELETE /索引/_doc/id值具体的举例:
DELETE /student/_doc/1

(1)根据id批量查询文档

GET /索引/_mget
{"docs":[{"_id":id值},{"_id":id值}] 
}例:
Get /student/_mget
{"docs":[{"_id":1},{"_id":2},{"_id":3}]
}

 (2)查询所有文档

GET /索引/_search
{"query": {"match_all": {}}
}

(3)修改文档部分字段

POST /索引/_doc/id值/_update
{ "doc":{ 域名:值} 
}举例:
POST /student/_doc/1/_update
{"doc":{"name":"opoop"}
}

注:

Elasticsearch执行删除操作时,ES先标记文档为deleted状态,而不是直接物理删除。当ES存储空间不足或工作空闲时,才会执行物理删除操作。

Elasticsearch执行修改操作时,ES不会真的修改Document中的数据,而是标记ES中原有的文档为deleted状态,再创建一个新的文档来存储数据。

三、域的属性

(1)index

该域是否创建索引。只有值设置为true,才能根据该域的关键词查询文档。

// 根据关键词查询文档
GET /索引名/_search
{"query":{"term":{ 搜索字段: 关键字} }
}
Get /student/_search
{"query":{"term":{"name":"is"//name是自己取的域名的名字}}
}

(2)type

type
域的类型核心类型	具体类型
字符串类型	    text
整数类型	        long, integer, short, byte
浮点类型	        double, float
日期类型     	date
布尔类型	        boolean
数组类型      	array
对象类型	        object
不分词的字符串	keyword

(3)store

是否单独存储。如果设置为true,则该域能够单独查询。

// 单独查询某个域:
GET /索引名/_search
{"stored_fields": ["域名"]
}
POST /student/_mapping
{"properties":{"id":{"type":"integer"},"name":{"type":"text","index":true,"store":true},"age":{"type":"integer"}}
}
GET /student/_search
{"stored_fields": ["name"]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/650660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Go语言编写安全的HTTP代理服务器

构建一个安全的HTTP代理服务器是至关重要的,因为这可以保护用户的数据和隐私。让我们来看看如何使用Go语言编写一个安全的HTTP代理服务器。 首先,确保你的代理服务器使用HTTPS协议进行通信。HTTPS使用SSL/TLS加密来保护数据传输,可以确保数据…

源聚达科技:抖店的专营店怎么开

在数字化浪潮的推动下,抖音平台不仅为人们提供了丰富的娱乐内容,也成为了电商的新战场。不少创业者和品牌商纷纷选择在抖音上开设自己的专营店,以此抓住流量红利,拓宽销售渠道。那么,如何在抖音平台上成功开设一家专营…

每日一题——LeetCode1346.检查整数及其两倍数是否存在

方法一 循环查找 用indexOf查找每个元素的两倍是否存在在数组中&#xff0c;找到了就直接return true&#xff0c;循环结束还没找到就return false var checkIfExist function(arr) {for(let i0;i<arr.length;i){let index arr.indexOf(arr[i]*2)if(index>0 &&…

听力下降为什么会影响到言语感知?

一、听力障碍对阈值、听觉频率范围和分辨能力的影响 听力障碍使得听障者的听敏度降低&#xff0c;提高了阈值&#xff0c;不利于言语信号的接收。听障者听力阈值的变化在不同频率并不相同&#xff0c;一般而言&#xff0c;高频部分的听力损失往往大于低频部分&#xff0c;而言…

fatal error:require():Failed opening required

今天部署网站遇到了个错误 fatal error:require():Failed opening required 这个错误经常遇到 大多是网站 是开启了 open_basedir 但今天这个错误很神奇 先说解决方法 1. 检测一下是不是真的 不存在这个文件 即使100%确定 也建议你再仔细看一下 这个文件存不存在 今天我遇…

Linux:利用匿名管道构建进程池

文章目录 进程池实现进程池创建信道和进程发送任务释放资源 进程池代码总结 本篇的主题是借助前面所学的基础管道实现一个进程池&#xff0c;那么在实现进程池前先了解进程池是什么&#xff0c;进程池有什么意义&#xff0c;进而对于进程池有一个基本的把握 进程池 给定一个进…

学习笔记-李沐动手学深度学习(四)(12-13,权重衰退、L2正则化、Dropout)

总结 【trick】过拟合及正则化项参数的理解 实际数据都有噪音&#xff0c;一般有噪音后&#xff0c;模型实际学习到的权重w就会比 理论上w的最优解&#xff08;即没有噪音时&#xff09;大。&#xff08;QA中讲的&#xff09; 【好问题】 &#xff08;1&#xff09;不使用正…

svg 属性详解:填充与边框

svg 属性详解&#xff1a;填充与边框 1 颜色和透明度2 填充规则 fill-rule3 边框样式3.1 stroke-width3.2 stroke-linecap3.3 stroke-linejoin3.4 stroke-dasharray 1 颜色和透明度 图像都有颜色&#xff0c;svg 中可以使用属性 fill 和 stroke 来修改图形的颜色。fill 属性设置…

九州金榜|家庭教育中孩子厌学原因及解决办法

作为家长我们希望自己的孩子热爱学习&#xff0c;并取得优异成绩。但是&#xff0c;在现实中&#xff0c;孩子往往会出现厌学情绪&#xff0c;作为家长为此感到非常困扰。如何帮助孩子克服厌学情绪&#xff0c;九州金榜家庭教育将会带大家找出背后的原因&#xff0c;并寻找有效…

Tortoise-tts Better speech synthesis through scaling——TTS论文阅读

笔记地址&#xff1a;https://flowus.cn/share/a79f6286-b48f-42be-8425-2b5d0880c648 【FlowUs 息流】tortoise 论文地址&#xff1a; Better speech synthesis through scaling Abstract: 自回归变换器和DDPM&#xff1a;自回归变换器&#xff08;autoregressive transfo…

SpringSecurity(15)——OAuth2密码模式

工作流程 将用户和密码传过去&#xff0c;直接获取access_token&#xff0c;用户同意授权动作是在第三方应用上完成&#xff0c;而不是在认证服务器&#xff0c;第三方应用申请令牌时&#xff0c;直接带用户名和密码去向认证服务器申请令牌。这种方式认证服务器无法判断用户是…

网站服务器中毒或是被入侵该怎么办?

随着互联网的普及和发展&#xff0c;网站服务器已经成为了企业和个人存储数据、展示信息的重要平台。然而&#xff0c;网络安全问题也日益突出&#xff0c;其中网站服务器中毒或被入侵的事件时有发生。一旦发生这种情况&#xff0c;不仅会导致网站无法正常运行&#xff0c;还可…

阿里云负载均衡对接

1 、开通负载均衡产品 2 、ALB / NLB / CLB ALB&#xff1a; 应用型负载均衡 &#xff0c; 给定对应服务域名与当前实例DNS绑定之后即可使用 支持&#xff1a; HTTP/HTTPS/QUIC等应用层流量协议 NLB&#xff1a; 网络型负载均衡 支持&#xff1a; TCP / UDP / TCPSSL C…

浏览器——HTTP缓存机制与webpack打包优化

文章目录 概要强缓存定义开启 关闭强缓存协商缓存工作机制通过Last-Modified If-Modified-Since通过ETag If-None-Match 不使用缓存前端利用缓存机制&#xff0c;修改打包方案webpack 打包webpack 打包名称优化webpack 默认的hash 值webapck其他hash 类型配置webpack打包 web…

STM32连接阿里云物联网平台

文章目录 引言一、STM32连接阿里云物联网平台思路二、ESP8266烧录固件三、使用AT指令连接阿里云物联网平台四、STM32环形串口缓冲区驱动程序五、STM32连接阿里云驱动程序 引言 连续写了两篇关于阿里云连接的文章&#xff0c;都是使用Arduino ESP8266 & Arduino ESP32的方式…

什么是网络安全?网络安全概况

网络安全涉及保护我们的计算机网络、设备和数据免受未经授权的访问或破坏。 这个领域包括多种技术、过程和控制措施&#xff0c;旨在保护网络、设备和数据免受攻击、损害或未授权访问。网络安全涉及多个方面&#xff0c;包括但不限于信息安全、应用程序安全、操作系统安全等 …

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models导读

通过生成一系列中间推理步骤&#xff08;即“思维链”&#xff09;显著提高大型语言模型进行复杂推理的能力 这篇论文探讨了如何通过生成一系列中间推理步骤&#xff08;即“思维链”&#xff09;显著提高大型语言模型进行复杂推理的能力。研究人员使用一种简单的方法——思维…

【PyTest】玩转HTML报告:修改、汉化和优化

前言 Pytest框架可以使用两种测试报告&#xff0c;其中一种就是使用pytest-html插件生成的测试报告&#xff0c;但是报告中有一些信息没有什么用途或者显示的不太好看&#xff0c;还有一些我们想要在报告中展示的信息却没有&#xff0c;最近又有人问我pytest-html生成的报告&a…

重磅!讯飞星火V3.5马上发布!AI写作、AI编程、AI绘画等功能全面提升!

讯飞星火大模型相信很多友友已经不陌生了&#xff0c;可以说是国内GPT相关领域的龙头标杆&#xff0c;而对于1月30日即将在讯飞星火发布会发出的V3.5新版本来说&#xff0c;讯飞星火V3.5与之前版本相比&#xff0c;性能提升方面相当明显&#xff0c;在提示语义理解、内容生成、…

代码随想录算法训练营29期|day32 任务以及具体安排

第八章 贪心算法 part02 122.买卖股票的最佳时机II // 贪心思路 class Solution {public int maxProfit(int[] prices) {int result 0;for (int i 1; i < prices.length; i) {result Math.max(prices[i] - prices[i - 1], 0);}return result;} } 思路&#xff1a;将股票问…