记录一下,elasticsearch从创建索引到插入数据的一个crud操作。
一、创建索引
curl -XPUT "http://192.168.99.1:9200/productindex" -d' { "settings": { "number_of_shards": 1, "number_of_replicas": 1 }, "mappings": { "product" : { "properties": { "name" : { "type": "text", "fielddata": true }, "price" : { "type": "long" } } } } }'
二、插入数据
1、如果需要插入的数据已经存在,那么执行替换操作,如果不存在则执行插入操作
注意: 1、此处是手动指定的id的值
2、如果productindex/product/1 这个数据存在,如果请求体中只有name字段,那么这行数据的price字段就会被删除,即执行的是替换操作,而不是更新操作
curl -XPUT "http://192.168.99.1:9200/productindex/product/1" -d' { "name" : "pen", "price" : 2 }'
2、如果数据已经存在,那么就报错,不存在则执行插入操作
注意:此处只需要加上_create或加上op_type=create即可
curl -XPUT "http://192.168.99.1:9200/productindex/product/1?op_type=create" -d' { "name" : "new pen", "price" : 2 }'
或
curl -XPUT "http://192.168.99.1:9200/productindex/product/1/_create" -d' { "name" : "new pen", "price" : 2 }'
3、插入数据的时候自动生成id的值
注意:此处就需要使用post请求,而不是使用put请求。
curl -XPOST "http://192.168.99.1:9200/productindex/product" -d' { "name" : "pen", "price" : 2 }'
三、修改数据
1、使用_update或op_type=update指定修改,数据不存在报错
curl -XPOST "http://192.168.99.1:9200/productindex/product/1/_update" -d' { "doc": { "name" : "update new name" } }'
2、使用乐观锁version控制修改(防止在并发情况下数据修改有误)
后方的这个version的值为数据当前的版本号,如果es中这个数据的版本号发生了变化,则修改失败。
curl -XPOST "http://192.168.99.1:9200/productindex/product/1/_update?version=7" -d' { "doc": { "name" : "update new name" } }'
3、使用upsert操作,如果数据不存在则执行upsert部分(插入操作),否则执行更新操作
curl -XPOST "http://192.168.99.1:9200/productindex/product/12/_update" -d' { "doc":{ "name":"update new value" }, "upsert" : { "name" : "数据不存在执行插入操作", "price" : 1 } }'
或执行如下操作 (使用doc_as_upsert,如果文档不存在,则将doc的部分当做upsert的部分)
curl -XPOST "http://192.168.99.1:9200/productindex/product/13/_update" -d' { "doc":{ "name":"update new value" }, "doc_as_upsert" : true }'
四、高亮查询
1、插入一条新的数据
curl -XPUT "http://192.168.99.1:9200/productindex/product/29" -d' { "name" : "new name", "desc" : "this is a desc field" }'
2、匹配name字段中有has name的值或desc字段中有desc的值,并对匹配到的值进行高亮
curl -XGET "http://192.168.99.1:9200/productindex/product/_search" -d' { "query": { "bool": { "should": [ { "match": { "name": "has name" } }, { "term": { "desc": { "value": "desc" } } } ] } }, "highlight": { "pre_tags": "<span style=\"color:red\">", "post_tags": "</span>", "fields": { "name" : { "pre_tags": "<span style=\"color:blue\">", "post_tags": "</span>" }, "*" : { } } } }'
五、删除数据
1、删除id=1的数据
curl -XDELETE "http://192.168.99.1:9200/productindex/product/1"
相关推荐
2. **索引与文档**:学习 Elasticsearch 中的索引概念,理解如何创建、删除和操作索引,以及文档的 CRUD(创建、读取、更新、删除)操作。 3. **查询与过滤**:掌握 Elasticsearch 的查询语法,包括匹配查询、范围...
* 电商网站商品管理:使用Elasticsearch实现商品的CRUD(Create、Read、Update、Delete)操作。 * 多种搜索方式:Query String Search、Query DSL、Phrase Search、Highlight Search等。 五、Elasticsearch基础...
1. **简单API**:Jest提供了简洁的API,用于执行各种Elasticsearch操作,如索引文档、搜索、更新等。 2. **异步与同步**:支持同步和异步执行操作,适应不同场景的需求。 3. **连接池管理**:内置连接池管理,优化...
索引是Elasticsearch中存储数据的地方,这部分介绍了如何执行索引的创建、读取、更新和删除(CRUD)操作。 16. SearchAPIs(搜索APIs) Elasticsearch的搜索功能非常强大。用户可以通过URI搜索、请求体搜索和各种...
### Elasticsearch基础知识,从小白到入门 #### 一、概念与背景 **搜索引擎基础:** - **倒排索引**:倒排索引是搜索引擎的核心技术之一,它将文档中的关键词与文档之间的对应关系建立索引,使得根据关键词快速...
**Elasticsearch 入门与实战** Elasticsearch(简称ES)是一款开源的全文搜索引擎,以其高效、可扩展和易用性在大数据分析和实时搜索领域广泛应用。它基于Lucene库构建,但提供了更高级别的分布式、RESTful风格的...
安装完成后,可以通过命令行启动、停止服务,或者通过 RESTful API 对集群进行各种操作,包括查看和管理集群、节点、索引和类型的状态,执行 CRUD 操作,以及进行高级搜索功能如排序、分页、筛选、聚合和 JavaScript...
Elasticsearch,Kibana 和 CerebroLogstash 安装与导入数据第 3 章:Elasticsearch 入门基本概念(1):索引,文档和 REST API基本概念(2):节点,集群,分片及副本文档的基本 CRUD 与批量操作倒排索引入门通过...
`ESProvider`类的实现会使用Elasticsearch.Net客户端库,例如`IElasticClient`接口,来执行CRUD操作。这包括创建索引、插入文档、搜索等。在实际项目中,你需要根据需求配置客户端实例,连接到你的Elasticsearch集群...
本课程提供所有代码笔记...14、ElasticSearch下载安装(window以及linux下安装) 15、集群环境搭建 16、客户端Kibana安装与使用 17、集群管理插件head安装使用 18、java api 操作 ES 19、电商项目实战应用等等 ....
5.SpringData ElasticSearch实现CRUD操作 第九章 SpringData MongDB 1.SpringData MongDB简介 2.MongDB环境搭建 3.MongDB基础知识回顾 4.SpringData MongDB入门案例 5.SpringData MongDB实现CRUD操作 第十章 综合...
弹性堆栈系列入门教程 第1部分:Elasticsearch和Kibana简介 欢迎来到弹性堆栈的初学者速成课程! 此存储库包含在研讨会第1部分:Elasticsearch和Kibana简介中共享的所有... 用Elasticsearch和Kibana执行CRUD操作的初
**Elasticsearch 入门详解** Elasticsearch(简称 ES)是一种基于 Lucene 的开源分布式搜索引擎,它提供了全文检索、分析和分布式存储的功能。ES 的设计目标是简单、可扩展和高可用性,广泛应用于日志分析、实时...
这个"SS2 入门简单示例"应该是一个帮助初学者理解这三个框架如何协同工作的教程。下面我们将详细探讨这三个框架以及它们在实际开发中的应用。 **Struts 2**: Struts 2是一个基于MVC(Model-View-Controller)设计...