ElasticSearch的基本使用 原创 原生zzy 2019-01-27 12:05:04 博主文章分类:elasticsearch ©著作权 文章标签 rest 风格接口 ElasticSear 文章分类 大数据 ©著作权归作者所有:来自51CTO博客作者原生zzy的原创作品,请联系作者获取转载授权,否则将追究法律责任 1.rest基本介绍REST全称Representational State Transfer。是一种软件的架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。其实说白了就是类似HTTP的访问,和HTTP非常的相似。rest相关操作有: -GET:获取对象的当前状态; -PUT:改变对象的状态; -POST:创建对象; -DELETE:删除对象; -HEAD:获取头信息; 例:资源一组资源的URI,比如:http://zzy.com/res/单个资源的URI,比如:http://z.com/res/123GET列出URI,以及该资源组中每个资源的详细信息获取指定资源的详细信息,格式可以自选一个合适的网络资源媒体类型(json、xml)PUT使用给定的一组资源替换当前整组资源替换/创建指定资源,并将其追加到相应的资源中POST在本组资源中创建/追加一个新的资源,该操作往往返回一个新的URL把指定的资源当做一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源DELETE删除整组资源删除指定的元素ES中内置的rest接口:URL描述/index/_search搜索指定索引下的数据/_aliases获取或操作索引的别名/index/查看指定索引的详细信息/index/type/创建或操作类型/index/_mapping创建或操作mapping/index/_setting创建或操作设置(number_of_shards)/index/_open打开指定被关闭的索引/index/_close关闭指定索引/index/_refresh刷新索引(使新加内容对搜索可见,不保证数据被写入磁盘)/index/flush刷新索引(会触发Lucene提交)2.使用CURL去操作ES url是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。 curl的基本操作: Ø -x 指定http的请求方法 有HEAD GET POST PUT DELETEØ -d 指定要传输的数据Ø -H 指定http请求头信息(1)创建索引库 语法:curl -XPUT http://<ip>:9200/index_name/ 例:curl -XPUT 'http://test:9200/zzy' (2)创建索引curl -H "Content-Type: application/json" -XPOST 'http://test:9200/zzy/info/1' -d ' {"name":"hadoop", "author":"Doug Cutting", "core":["hdfs","mr","yarn"], "last_version":3.0 }' 在这里对初学者小编需要补充几点:PUT和POST的区别: PUT是幂等方法,POST不是。所以PUT用户更新,POST用于新增比较合适。创建操作可以使用POST,也可以使用PUT,区别就在于POST是作用在一个集合资源(/articles)之上的,而PUT操作是作用在一个具体资源之上的(/articles/123),比如说很多资源使用数据库自增主键作为标识信息,这个时候就需要使用PUT了。而创建的资源的标识信息到底是什么,只能由服务端提供时,这个时候就必须使用POST。ES创建索引库和索引的注意点:* 索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号。* 如果没有明确指定索引数据的ID,那么es会自动生成一个随机的ID,需要使用POST参数。 例:(不指定id)curl -H "Content-Type: application/json" -XPOST 'http://test:9200/zzy/info/' -d ' {"author" : "Doug Cutting"}' 例:(创建全新的数据)curl -H "Content-Type: application/json" -XPOST 'http://test:9200/zzy/info/2?op_type=create' -d ' {"name" : "hbase"}'(3)查询操作 例1(查询所有):curl -XGET //注意?pretty表示让出现的json好看一些例2:(检索文档中的一部分,显示特定的字段内容)curl -XGET 'http://test:9200/zzy/info/1?_source=name,author&pretty'例3:(根据条件查询)curl -XGET 'http://test:9200/zzy/info/_search?q=name=hadoop&pretty'(4)更新操作 ES可以使用PUT/GET对文档进行更新,如果指定ID的文档已经存在,则执行更新操作。 ES在执行更新操作的时候,首先将旧的文档标记为删除状态,然后添加新的文档,旧的文档不会立即消失,但是也无法访问,ES会继续添加更多数据的时候在后台清理已经标记删除状态的文档。例:(局部更新)curl -H "Content-Type: application/json" -XPOST http://test:9200/zzy/info/1/_update -d '{ "doc":{"name" : "apache-hadoop"} }' //注意:"doc":{"name" : "apache-hadoop"}可以执行更新,也可以执行插入。(5)删除操作例:(普通删除,根据id删除)curl -XDELETE http://test:9200/zzy/info/2/注意:如果文档存在,es属性found:true,successful:1,_version属性的值+1。如果文档不存在,es属性found为false,但是版本值version依然会+1,这个就是内部管理的一部分,有点像svn版本号,它保证了我们在多个节点间的不同操作的顺序被正确标记了。一个文档被删除之后,不会立即生效,他只是被标记为已删除。ES将会在你之后添加更多索引的时候才会在后台进行删除。(6)bulk操作例:curl -H "Content-Type: application/json" -XPOST 'http://test:9200/bank/accout/_bulk?pretty' --data-binary "@account.json"Bulk会把将要处理的数据载入内存中,所以一次批处理的数据量是有限的,一般建议是1000~5000个文档,如果你的文档很大,可以适当减少队列,大小建议是5~15MB,默认不能超过100M,可以在es的配置文件中修改这个值:http.max_content_length:100mb3.ES的版本控制(1)普通数据库和ES的控制数据读取的策略: 普通的关系型数据库使用的时候是当我们读取一个数据前先锁定这一行,然后确保只有读到数据的这个线程可以修改这一行。而ES使用的是(乐观并发控制),ES不会阻止某一个数据的访问,如果基础数据在我们读取和写入的间隔中发生了变化,更新就会失败,这时候由程序来决定如何处理这个冲突,可以是重新读取更新后的数据,也可能将这个失败情况直接反馈给用户。(2)ES实现版本控制://首先得到需要修改的文档,获取版本号 curl -XGET http://test:9200/zzy/info/1?pretty//然后在执行更新操作的时候把版本传过去 curl -H "Content-Type: application/json" -XPUT http://test:9200/zzy/info/1?version=2 -d '{ "name":"hadoop","version":4}' //注意这是个覆盖操作注意:如果传递的版本号和待更新的文档的版本号不一致,则会更新失败(3)ES外部版本: 如果数据库已经存在了版本号,或者是可以代表版本的时间戳,这时就可以在ES的查询url后面添加version_type=external来使用这个号。版本号码必须要是大于0小于9223372036854775807(Java中long的最大正值)的整数。并且es在处理外部版本号的时候,它不再检查_version是否与请求中指定的数值是否相等,而是检查当前的_version是否比指定的数值小,如果小,则请求成功。例:curl -H "Content-Type: application/json" -XPUT 'http://test:9200/zzy/info/3?version=10&version_type=external' -d ' {"name": "flink"}' 赞 收藏 评论 分享 举报 上一篇:JDBC的介绍与使用 下一篇:学习方法分享 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 JdbcTemplate的基本使用-新增 一、JdbcTemplate的基本介绍JdbcTemplate 是 Spring 对 JDBC 的封装,目的是使JDBC更加易于使用,JdbcTemplate是Spring的一部分。JdbcTemplate 处理了资源的建立和释放,它帮助我们避免一些常见的错误,比如忘了总要关闭连接。他运行核心的JDBC工作流,如Statement的建立和执行,而我们只需要提供SQL语句和提取结果即可。Spring jdbc 新增 JdbcTemplate 使用Curator+K8s CronJob定期删除Elasticsearch索引 背景说明 在部署Skywalking时,后端存储使用的是Elasticsearch,每天都会新建索引,为了节省磁盘空间,需将1天以前的索引删除,每天17:11定时执行。相关索引信息如下:索引格式: 索引名称-日期(年月日),例如:sw_zipkin_span-20240228。索引名称:sw_records-allsw_browser_error_logsw_zipkin_spansw_logsw elasticsearch k8s cronjob curator Skywalking Linux Vim编辑器的基本使用还记得不 一、[VIM]编辑器1)vi 概述vi(visual editor)编辑器通常被简称为 vi,它是 Linux 和 Unix 系统上最基本的文本编辑器,类似于 Windows 系统下的 notepad(记事本)编辑器。2)vim 编辑器Vim(Vi improved) 是 vi 编辑器的加强版,比 vi 更容易使用。vi 的命令几乎全部都可以在 vim 上使用。3)vim 编辑器的安装☆ 已安装L 命令模式 vim 文件名 Elasticsearch基本使用 定义 一个 Elasticsearch 集群可以 包含多个 索引 ,相应的每个索引可以包含多个 类型 。 这些不同的类型存储着多个 文档 ,每个文档又有 多个 属性 。 创建一个索引 http://192.168.1.10:9200/test/student/1 PUT { "name" : "li Elastic 搜索 JSON Elasticsearch(ES)的基本使用 1. 概述之前聊了一下 Elasticsearch 的安装,今天我们来说说 Elasticsearch 的基本使用。2.Elasticsearch索引的使用索引(index)相当于是mysql中的表。2.1 创建索引1)Head插件方式选择 索引 页签 elasticsearch restful es 搜索引擎 索引 ElasticSearch 基本使用 kibana 搜索文档# 根据ID搜索GET /system-manage-question/_doc/330{ "query": { "match_a elasticsearch 搜索引擎 大数据 搜索 批量插入 Elasticsearch之基本使用 这里大概解答下各个目录、配置文件的作用:目录配置文件描述bin 放置脚本文件,如启动脚本 elasticsearch, 插件安装脚本等。configelasticserch.ymlelasticsearch 配置文件,如集群配置、jvm 配置等。jdk java 运行环境datapath.data数据持久化文件lib 依赖的相关类库logspath.log日志文件 搜索引擎 elasticsearch twitter 配置文件 字段 ElasticSearch基础:基本使用示例 在 Elasticsearch 中,数据存储在索引 elasticsearch 搜索引擎 大数据 Elastic 搜索 ElasticSearch基本使用姿势二 本文作为elasticsearch 基本使用姿势第二篇,包含以下内容- 查询指定字段- 限制返回条数- 分页查询- 分组查询- 高亮- 自动补全提示- 排序- 返回结果聚合 elasticsearch 搜索引擎 字段 最小值 elasticsearch-head插件基本使用 1. 查看搜索setting信息 mp_index/_settings 2. 设置分片数量 3, 修改数据刷新间隔{ "refresh_interval": "30s" # -1 关闭}# 设置为30秒刷新频率refresh_interval 可以在既存索引上进行动态更新。 在生产环境中,当你正在建立一个大的新索引时,可以先关闭自动刷新,待开始使用该索引时,再把 插件 elasticsearch-head elasticsearch 字段 数据 一、Elasticsearch原理与基本使用 [TOC]一、Elasticsearch概述1.1什么是搜索搜索,就是在任何场景下,找寻想要的信息。通过关键字检索出与此关键字有关的信息。这和查询还不太一样,查询通常是在表格类型的数据中查找,字段的内容的长度往往不大。1.2使用传统数据库实现搜索传统数据库的情况下,如果要查询某个字段是否包含某些关键字的话,需要使用到like关键字来进行字段匹配,很大概率导致全表扫描,本身来说性能就不算好。如果 Elasticsearch原理与基本使用 elasticsearch的基本用法 什么是elasticsearchElasticsearch 是一个开源的分布式全文搜索引擎,它可以快速地存储、搜索和分析海量数据。它采用了Lucene搜索引擎库,提供了简单易用的RESTful API接口,支持近实时搜索和分析功能,被广泛应用于企业搜索、日志分析、数据挖掘、安全检测等领域。我们可以使用Elasticsearch这个开源搜索引擎来实现高效的全文检索和分析。在本文中,我们将介绍El Elastic 搜索 json elasticsearch的基本操作 elasticsearch的安装请参考:https://blog.csdn.net/qq_42410605/article/details/97884456elasticsearch插件head的安装 json 输入框 elasticsearch 在Mac OS X使用Elasticsearch的基本流程 这篇日志的目的非常easy,就是记录一些主要的流程。要在OS X上使用Elasticsearch,事实上非常easy elasticsearch ide java ElasticSearch的基本概念 1.2ElasticSearch的基本概念Index类似于mysql数据库中的databaseType类似于mysql数据库中的table表,es中可以在Index中建立type(table),通过mapping进行映射。Document由于es存储的数据是文档型的,一条数据对应一篇文档即相当于mysql数据库中的一行数据row,一个文档中可以有多个字段也就是mysql数据库一行可以有多列。 mysql数据库 mysql 数据 ElasticSearch基本用法 索引的创建ElasticSearch的RESTFulAPI基本格式:http://<ip>:<port>/<索引>/<类型>/<文档id>常用HTTP动词:GET/POST/PUT/DELETE1.非结构化的创建索引:创建索引完成后,可以在概览页面中查看到分片的信息,细框的分片是粗框分片的备份或者说副本:我们通过查看索引信息来确定该索引是 ElasticSearch ELK 分布式 搜索引擎 es ElasticSearch基本介绍 索引关于索引这玩意在MySQL中有详细的介绍,这里都是差不多的概念,可以简单看看MySQL高新能索引,索引又分为正向索引和方向索引,通常MySQL就是正向索引的典型案例!正向索引以数据记录的id,或者name作为搜索条件,通过匹配id或者那么列得到全部记录的操作称为正向索引,这种组织方式在建立索引结构比较简单,易于维护,但是在大文本检索的时候效率太低,所以这就诞生了反向索引的概念!反向索引反向索引,一般也被称为倒排索引倒排索引以字或者关键字进行索引,表中关键字对应的记录表项记录了出现这个字或者 elasticsearch 数据 mysql 其他 Elasticsearch 基本操作 ElasticsearchElasticsearch简介 Elasticsearch是一个分布式的全文检索引擎,它是对lucene的功能做了封装,能够达到实时搜索,稳定, 可靠,快速等特点。 如果大家对Lucene有所了解的话,那么针对Elasticsearch其实就好理解了MySQL VS Elasticsearch解释: 1: MySQL中有Database(数据库)的概念,对应的在ES中有I elasticsearch elastic elasticsearch基本搭建 elk产生的场景:在微服务开发过程中,一般都会利用多台服务器做分布式部署,如何能够把分散在各个服务器中的日志归集起来做分析处理,是一个微服务服务需要考虑的一个因素。搭建一个日志系统搭建一个日志系统需要考虑一下一些因素:利用什么技术,是自己实现还利用现成的组件日志需要定义统一的格式日志需要拥有一个锚点来进行全局跟踪第一个问题,针对我们小公司来说,基本没有自己的研发能力,绝对是选用第三方开源的组件了。 elk Elasticsearch-Api基本使用 Elasticsearch-Api基本使用 Restful风格命令说明 | method | url地址 | 描述 | | | | | | PUT | localhost:9200/索引名称/类型名称/文档id | 创建文档(指定文档id) | | POST | localhost:9200/索引名 ... ElasticSearch 值类型 字段类型 数据 elasticsearch