ElasticSearch基操之增删改查
前言
ES里的数据是JSON形式的。
增删改查通过RESTFul 风格(也可以通过client)
端口为9200
四个词
ES(NoSQL) index type document
SQL 数据库 表(可选的) (一条数据)
document有个id,这个作为索引,你可以自己定义这个id(字符串)也可以不写,会自动生成随机字符串
增删改查大法
启动ES后
了解完这几个名词之后我们开始,让我们对这个ES有个基本了解
增(默认对于没有的index type自动增加)
curl -X PUT 'localhost:9200/warehouse/fruit/apple' -d '{"name":"苹果","price":8.88,"unit":"元(人民币)","amount":500}'
这句话创建了一个index(数据库)warehouse,创建了一个type(表)fruit,向里面插入了一条记录,记录的id为字符串apple,内容为后面那个json对象
我们来查询看看
查询数据
查询指定id的数据
curl 'localhost:9200/warehouse/fruit/apple'
查询结果如下,查询结果也是个json数据,我们的document就在_source字段
我解释下这个json里的各个字段
_index 哪个数据库
_type 哪个表
_id 索引id
_version 第多少个版本
_found 是否找到
_source document文档,其实就是这条数据的内容
示范如下
curl 'localhost:9200/warehouse/fruit/apple?pretty=true'
同样的方法我
查询所有
(我已事先再次添加了一条数据到/warehouse/fruit下)
curl 'localhost:9200/warehouse/fruit/_search?pretty=true'
自定义条件进行查询
我们可以利用查询表达式进行复杂查询,详见 查询表达式文档
例如查询/warehouse/fruit里名字里包含 果 这个字的数据
curl 'localhost:9200/warehouse/fruit/_search?pretty=true' -d '{"query":{"match":{"name":"果"}}}'
body里的json数据展开来看
{
"query": {
"match": {
"name": "果"
}
}
}
其他查询规则仔细看你查询表达式文档
删除数据
删除指定数据
curl -X DELETE 'localhost:9200/warehouse/fruit/apple?pretty=true'
执行结果
查询下所有看是不是真的删除了
curl -X GET 'localhost:9200/warehouse/fruit/_search?pretty=true'
修改数据
整个文档覆盖修改
直接用PUT即可,将要修改的字段放进去,就修改了
curl -X PUT 'localhost:9200/warehouse/fruit/orange?pretty=true' -d '{"price":8.8}'
再次查询可以看到已经被修改
部分修改
curl -X POST 'localhost:9200/warehouse/fruit/orange/_update?pretty=true' -d '{"doc":{"price":9}}'
其他复杂的操作请看文档
https://www.elastic.co/guide/cn/elasticsearch/guide/current/getting-started.html
本文来自博客园,作者:HumorChen99,转载请注明原文链接:https://www.cnblogs.com/HumorChen/p/18039724
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~