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.hqwc.cn/news/434095.html

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

相关文章

放个烟花迎接龙年春节吧

不知不觉即将迎来2024龙年春节了。龙的形象在中国传统文化中有着广泛的应用,比如在传统文化中,龙代表着权力、威严、吉祥和神灵的象征,同时也是生命力和繁荣的象征。 今天的文章将用原生JavaScript和Canvas API实现一个烟花的效果&#xff0…

程序员的你,是不是又被催婚了

程序员作为社会中一个较为特殊的群体,由于工作特性(如长时间对着电脑、工作节奏较快、加班相对频繁等)以及职业发展需要投入大量时间和精力,有时可能会面临较晚结婚的问题。这也导致了在某些情况下,他们可能被家人或朋…

【Linux】什么是.bashrc,以及其使用方法

经常在配置linux各种环境的时候,遇到对bashrc的配置。当时也只是机械地跟着教程,一步步输入指令;遇到的次数多了,想知道.bashrc究竟是何方神圣。于是整理了下其主要功能以及使用方法。 一、什么是.bashrc .bashrc,属…

Go 知识for-range

Go 知识for-range 1. for-range 的用法1.1 数组1.2 切片1.3 字符串1.4 map1.5 chan 2. 原理2.1 数组2.2 切片2.3 字符串2.4 map2.5 chan 3. 总结 https://a18792721831.github.io/ 1. for-range 的用法 for-range 表达式用于遍历集合元素,比传统的for更加简单直观…

03-Redis缓存高可用集群

文章目录 1、Redis集群方案比较2、Redis高可用集群搭建redis集群搭建Java操作redis集群 4、Redis集群原理分析槽位定位算法跳转重定位Redis集群节点间的通信机制gossip通信的10000端口网络抖动 Redis集群选举原理分析集群脑裂数据丢失问题集群是否完整才能对外提供服务Redis集群…

【LeetCode每日一题】2865. 美丽塔 I

2024-1-24 文章目录 [2865. 美丽塔 I](https://leetcode.cn/problems/beautiful-towers-i/) 2865. 美丽塔 I 初始化变量 ans 为0,用于记录最大的和值。获取整数列表的长度,保存到变量 n 中。使用一个循环遍历列表中的每个位置,从0到n-1。在循…

【JavaEE】网络原理: 网络编程套接字(概念)

目录 1.什么是网络编程 2.网络编程中的基本概念 2.1发送端和接收端 2.2请求和响应 2.3客户端和服务端 3.Socket套接字 4.Socket编程注意事项 1.什么是网络编程 网络编程,指网络上的主机,通过不同的进程,以编程的方式实现网络通信 (…

【C++】类和对象(中篇)(全网最细!!!)

文章目录 🍔一、类的六个默认成员函数🍔二、构造函数🍟1、概念🍟2、特性🍩默认构造函数 🍔三、析构函数🍟1、概念🍟2、特性🍩默认析构函数 🍔四、拷贝构造函数…

STL之queue 【队列】

STL之queue 【队列】 一.基本用法1.头文件2.创建queue3.插入元素:4.删除元素(弹出元素):5.访问队列的前端元素6.访问队列的后端元素7.检查队列是否为空8.获取队列的大小 二.综合示例:用C语言实现队列queue常见的应用场景包括: que…

Redis2-事务 连接Java 整合springboot 注解缓存

一、订阅和发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可以收到消息 发布订阅的代…

图像噪声、去噪基本方法合集(Python实现)

文章目录 前言 本文主要参考冈萨雷斯的数字图像处理 (第4版),介绍图片中一些常见的噪声形式和常用的去噪方法,并且给出相应滤波方法的实现代码。 一、噪声分类 1、高斯噪声2、泊松噪声3、椒盐噪声4、瑞利噪声5、爱尔兰&#xff0…

基于 java+springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于 javaspringbootmybatis电影售票网站管理系统前台后台设计和实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承…