《ElasticSearch6.x实战教程》之简单的API

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 《ElasticSearch6.x实战教程》之简单的API第三章-简单的API万丈高楼平地起ES提供了多种操作数据的方式,其中较为常见的方式就是RESTful风格的API。简单的体验利用Postman发起HTTP请求(当然也可以在命令行中使用curl命令)。

《ElasticSearch6.x实战教程》之简单的API
第三章-简单的API
万丈高楼平地起

ES提供了多种操作数据的方式,其中较为常见的方式就是RESTful风格的API。

简单的体验

利用Postman发起HTTP请求(当然也可以在命令行中使用curl命令)。

索引Index
创建索引
创建一个名叫demo的索引:

PUT http://localhost:9200/demo

ES响应:

{

"acknowledged": true,
"shards_acknowledged": true,
"index": "demo"

}
在创建索引时,可指定主分片和分片副本的数量:

PUT http://localhost:9200/demo

{

"settings":{
    "number_of_shards":1,
    "number_of_replicas":1
}

}
ES响应:

{

"acknowledged": true,
"shards_acknowledged": true,
"index": "demo"

}
查看指定索引
GET http://localhost:9200/demo

ES响应:

{

"demo": {
    "aliases": {},
    "mappings": {},
    "settings": {
        "index": {
            "creation_date": "1561110747038",
            "number_of_shards": "1",
            "number_of_replicas": "1",
            "uuid": "kjPqDUt6TMyywg1P7qgccw",
            "version": {
                "created": "5060499"
            }, 
            "provided_name": "demo"
        }
    }
}

}
查询ES中的索引
查询ES中索引情况:

GET http://localhost:9200/_cat/indices?v

ES响应:

health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open demo wqkto5CCTpWNdP3HGpLfxA 5 1 0 0 810b 810b
yellow open .kibana pwKW9hJyRkO7_pE0MNE05g 1 1 1 0 3.2kb 3.2kb
可以看到当前ES中一共有2个索引,一个是我们刚创建的demo,另一个是kibana创建的索引.kibana。表格中有一些信息代表了索引的一些状态。

health:健康状态,red表示不是所有的主分片都可用,即部分主分片可用。yellow表示主分片可用备分片不可用,常常是单机ES的健康状态,greens表示所有的主分片和备分片都可用。(官方对集群健康状态的说明,https://www.elastic.co/guide/en/elasticsearch/guide/master/cluster-health.html

status:索引状态,open表示打开可对索引中的文档数据进行读写,close表示关闭此时索引占用的内存会被释放,但是此时索引不可进行读写操作。

index:索引

uuid:索引标识

pri:索引的主分片数量

rep:索引的分片副本数量,1表示有一个分片副本(有多少主分片就有多少备分片,此处表示5个备分片)。

docs.count:文档数量

docs.deleted:被删除的文档数量

store.size:索引大小

pri.store.size:主分片占用的大小

删除索引
删除demo索引,删除索引等同于删库跑路,请谨慎操作。

DELETE http://localhost:9200/demo

ES响应:

{

"acknowledged": true

}
类型Type(同时定义映射Mapping字段及类型)
创建类型
在前面基本术语中我们提到类型Type类似关系型数据库中的表,映射Mapping定义表结构。创建类型Type时需要配合映射Mapping。

创建索引demo的类型为example_type,包含两个字段:created类型为date,message类型为keyword:

方式一:

PUT http://localhost:9200/demo/_mapping/example_type

{

"properties":{
    "created":{
        "type":"date"
    },
    "message":{
        "type":"keyword"
    }
}

}
此时再次执行查询索引的操作,已经可以发现类型Type被创建了,遗憾的是,如果类型Type(或者映射Mapping)一旦定义,就不能删除,只能修改,为了保证本教程顺利进行方式二创建类型,所以此处执行DELETE http://localhost:9200/demo删除索引。删除索引后不要再创建索引,下面的这种方式是在创建索引的同时创建Type并定义Mapping

方式二:

PUT http://localhost:9200/demo
{

"mappings":{
    "example_type":{
        "properties":{
            "created":{
                "type":"date"
            },
            "message":{
                "type":"keyword"
            }
        }
    }
}

}
此时执行GET http://localhost:9200/demo,可以看到我们在ES中创建了第一个索引以及创建的表结构,接下来插入就是数据(即文档)。

文档Document
插入文档
系统定义_id

POST http://localhost:9200/demo/example_type
{

"created":1561135459000,
"message":"test1"

}
ES响应:

{

"_index": "demo",
"_type": "example_type",
"_id": "AWt67Ql_Tf0FgxupYlBX",
"_version": 1,
"result": "created",
"_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
},
"created": true

}
查询文档
ElasticSearch的核心功能——搜索。

POST http://localhost:9200/demo/example_type/_search?pretty

ES响应:

{

"took": 183,
"timed_out": false,
"_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
},
"hits": {
    "total": 1,
    "max_score": 1,
    "hits": [
        {
            "_index": "demo",
            "_type": "example_type",
            "_id": "AWt67Ql_Tf0FgxupYlBX",
            "_score": 1,
            "_source": {
                "created": 1561135459000,
                "message": "test1"
            }
        }
    ]
}

}
关于文档的查询是ElasticSearch的核心,后面的章节会详细介绍一些基本的简单查询和更为高级的复杂查询,此处仅作为对插入数据的验证,不做过多展开。

修改文档
根据文档_id修改

POST http://localhost:9200/demo/example_type/AWt67Ql_Tf0FgxupYlBX/_update
{

"doc":{
    "message":"updated"
}

}
ES响应:

{

"_index": "demo",
"_type": "example_type",
"_id": "AWt67Ql_Tf0FgxupYlBX",
"_version": 2,
"result": "updated",
"_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
}

}
删除文档
删除_id为AWt67Ql_Tf0FgxupYlBX的文档

DELETE http://localhost:9200/demo/example_type/AWt67Ql_Tf0FgxupYlBX

ES的响应:

{

"found": true,
"_index": "demo",
"_type": "example_type",
"_id": "AWt67Ql_Tf0FgxupYlBX",
"_version": 2,
"result": "deleted",
"_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
}

}
原文地址https://www.cnblogs.com/yulinfeng/p/11210870.html

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
1月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
1月前
|
缓存 自然语言处理 API
阿里巴巴国际站关键字搜索 API 实战:3 步搞定多语言适配 + 限流破局,询盘量提升 40%
跨境电商API开发常陷合规、多语言、限流等坑。本文详解从国际合规(GDPR/CCPA)到参数优化、数据结构化及区域化搜索的全链路方案,附Python代码模板与缓存重试架构,助力提升调用成功率至99%+,精准询盘增长42%。
|
1月前
|
开发者 API 机器学习/深度学习
淘宝 / 1688 / 义乌购图搜 API 实战指南:接口调用与商业场景应用
本文详解淘宝、1688、义乌购三大平台图片搜索接口的核心特点、调用流程与实战代码。涵盖跨平台对比、参数配置、响应解析及避坑指南,支持URL/Base64上传,返回商品ID、价格、销量等关键信息,助力开发者快速实现商品识别与比价功能。
淘宝 / 1688 / 义乌购图搜 API 实战指南:接口调用与商业场景应用
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
2月前
|
人工智能 运维 监控
阿里云 API 聚合实战:破解接口碎片化难题,3 类场景方案让业务响应提速 60%
API聚合破解接口碎片化困局,助力开发者降本增效。通过统一中间层整合微服务、第三方接口与AI模型,实现调用次数减少60%、响应提速70%。阿里云实测:APISIX+函数计算+ARMS监控组合,支撑百万级并发,故障定位效率提升90%。
262 0
|
2月前
|
JSON API 调度
Midjourney 技术拆解与阿里云开发者实战指南:从扩散模型到 API 批量生成
Midjourney深度解析:基于优化Stable Diffusion,实现文本到图像高效生成。涵盖技术架构、扩散模型原理、API调用、批量生成系统及阿里云生态协同,助力开发者快速落地AIGC图像创作。
492 0
|
2月前
|
数据采集 缓存 API
小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)
本文详解小红书笔记详情API的开发对接、实战场景与收益模式,涵盖注册避坑、签名生成、数据解析全流程,并分享品牌营销、内容创作、SAAS工具等落地应用,助力开发者高效掘金“种草经济”。
小红书笔记详情 API 实战指南:从开发对接、场景落地到收益挖掘(附避坑技巧)
|
2月前
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
2月前
|
供应链 监控 安全
1688商品详情API接口实战指南:合规获取数据,驱动B2B业务增长
1688商品详情API(alibaba.product.get)是合规获取B2B商品数据的核心工具,支持全维度信息调用,助力企业实现智能选品、供应链优化与市场洞察,推动数字化转型。
|
2月前
|
缓存 监控 供应链
亚马逊 MWS API 实战:商品详情精准获取与跨境电商数据整合方案
本文详细解析亚马逊MWS API接口的技术实现,重点解决跨境商品数据获取中的核心问题。文章首先介绍MWS接口体系的特点,包括多站点数据获取、AWS签名认证等关键环节,并对比普通电商接口的差异。随后深入拆解API调用全流程,提供签名工具类、多站点客户端等可复用代码。针对跨境业务场景,文章还给出数据整合工具实现方案,支持缓存、批量处理等功能。最后通过实战示例展示多站点商品对比和批量选品分析的应用,并附常见问题解决方案。该技术方案可直接应用于跨境选品、价格监控等业务场景,帮助开发者高效获取亚马逊商品数据。
下一篇
oss云网关配置