elasticsearch-基础查询语法整理

这篇博客主要介绍了Elasticsearch的基础查询语法,包括如何关闭服务、查询集群健康状态、调整复制分片数量以及创建索引等操作。此外,还详细讲解了简单搜索查询,如批量查询mget和批量更新bulk的使用方法,强调了批量操作在节省网络开销方面的优势,并提醒了在处理JSON文档流时的注意事项。
摘要由CSDN通过智能技术生成

常用查询

  • 关闭服务
curl -XPOST 'http://localhost:9200/_shutdown'
  • 查询集群健康
GET /_cluster/health
  • 修改复制分片的数量
PUT /blogs/_settings
{
   "number_of_replicas" : 2 }
  • 创建索引并设置分片数
//分配3个主分片和一个复制分片(每个主分片都有一个复制分片)
PUT /blogs
{
   "settings" : {
      "number_of_shards" : 3,
      "number_of_replicas" : 1 } }
  • 计算集群中的文档数量
curl -XGET 'http://localhost:9200/_count?pretty' -d '
{
    "query": {
        "match_all": {} } } '
  • 添加
POST /megacorp/employee/2
{
    "first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "睡觉" ] } //自定义id创建 //方式一 PUT /megacorp/employee/123?op_type=create { "first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "睡觉" ] } //方式二 PUT /megacorp/employee/123/_create { "first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "睡觉" ] }
  • 修改
PUT /megacorp/employee/2
{
    "first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "吃桃" ] } //自定义版本号修改 PUT /website/blog/2?version=5&version_type=external { "first_name" : "孙悟空", "last_name" : "孙悟空", "age" : 33, "about" : "四大名著 西游记 西天取经", "interests": [ "打怪", "吃桃" ] } //自增修改字段 //?retry_on_conflict=5当出现版本冲突时的重试次数 POST /megacorp/employee/5/_update?retry_on_conflict=5 { "script": "ctx._source.age+=1", "upsert": { "age": 0 } }
  • 删除
DELETE /megacorp/employee/2

简单搜索查询

//按id查询
GET /megacorp/employee/1

//按id查询格式化 GET /megacorp/employee/1?pretty //只返回_source部分字段 GET /megacorp/employee/1?_source=first_name,age //只返回_source字段而不要其他的元数据 GET /megacorp/employee/1/_source //搜索全部 GET /megacorp/employee/_search //查询字符串 GET /megacorp/employee/_search?q=last_name:Smith
  • 批量查询mget

合并多个请求可以避免每个请求单独的网络开销

//不同的index查询
POST /_mget
{
  "docs": [
    {
      "_index": "myblog", "_type": "mb_articles", "_id": 2 }, { "_index": "megacorp", "_type": "employee", "_id": 5 } ] } //同一个type查询 POST /megacorp/employee/_mget { "docs": [ { "_id": 5 }, { "_id": 1 } ] } 或者 POST /megacorp/employee/_mget { "ids": [ "2", "1" ] }
  • 批量更新 bulk

格式:

这种格式类似于用"\n"符号连接起来的一行一行的JSON文档流(stream)。两个重要的点需要注意:

  • 1、每行必须以"\n"符号结尾,包括最后一行。这些都是作为每行有效的分离而做的标记。
  • 2、每一行的数据不能包含未被转义的换行符,它们会干扰分析——这意味着JSON不能被美化打印
{ action: { metadata }}\n { request body }\n { action: { metadata }}\n { request body }\n ...
  • action:
行为解释
create当文档不存在时创建之
index创建新文档或替换已有文档
update局部更新文档
delete删除一个文档
POST /_bulk
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }} { "title": "My first blog post" } { "index": { "_index": "website", "_type": "blog" }} { "title": "My second blog post" }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值