elasticsearch常见操作

索引index

查看集群状态:

复制代码
GET _cat/health

查看所有index:

说明:v是用来要求在结果中返回表头

复制代码
GET _cat/indices?v
GET _aliases

查看dev开头的index:

复制代码
GET _cat/indices/dev*

删除指定index:

复制代码
DELETE test_omp

复制或索引重命名:

复制代码
### 直接复制索引到新的索引名称
POST localhost:9200/_reindex
{
  "source": {
    "index": "indexName"
  },
  "dest": {
    "index": "newIndexName"
  }
}

### 查询复制索引到新的索引名称
POST localhost:9200/_reindex
{
  "source": {
    "index": "indexName",
    "type": "typeName",
    "query": {
      "term": {
        "name": "shao"
      }
    }
  },
  "dest": {
    "index": "newIndexName"
  }
}

文档document

https://blog.csdn.net/qq_19006223/article/details/110124775

https://javaedge.blog.csdn.net/article/details/110599524

查看指定索引指定id的文档:

复制代码
GET /test_gateway/_doc/L_-4DH0BA5KB_D7Szmt8

查看指定索引的所有文档(并根据指定字段排序,默认返回10条):

复制代码
GET /test_gateway/_search?q=*&sort=request_log.appType.keyword:asc&pretty
或json格式:
GET /test_gateway/_search
{
  "query": { "match_all": {} },
  "sort": [
    {"request_log.appType.keyword": "asc" }
  ]
}

模糊搜索:

复制代码
GET prod_artwork-omp/_search?from=0&size=2
{
  "query": {
    "wildcard": {
      "omp_request_log.uri": "upload"
    }
  }
}

新增文档使用PUT、POST请求。

复制代码
PUT /<target>/_doc/<_id>
POST /<target>/_doc/
PUT /<target>/_create/<_id>
POST /<target>/_create/<_id>

target为索引名称,_doc为默认type。通过前两种请求可看出,id可以自行指定,也可以由ES自动生成。_create可以保证只有当文档不存在的时候进行插入,而_doc还可以用于文档更新。

插入文档(也可指定_id:POST test_omp/_doc/{_id}):

复制代码
POST test_omp/_doc
{
  "omp_request_log": {
    "myid": "id001"
  }
}

删除文档(也支持json格式):

复制代码
DELETE test_omp/_doc/AQQmDn0BA5KB_D7SC_7f

POST /test_omp/_delete_by_query
{
  "query": {
    "match": {
      "_id": "AQQmDn0BA5KB_D7SC_7f"
    }
  }
}

修改文档:

复制代码
# 指定字段更新
POST test_omp/_update/9gUwDn0BA5KB_D7SWQLN
{
  "doc": {
      "omp_request_log": {
        "id": "myid002"
    }
  }
}

# 全字段更新
POST test_omp/_doc/9gUwDn0BA5KB_D7SWQLN
{
  "omp_request_log": {
    "id": "myid003"
  }
}

此外还可以通过脚本修改,例如将所有存在age字段的文档,其值改成5岁。

复制代码
POST /user/_update_by_query
{
  "script": {
    "source": "ctx._source['age']=5" 
  },
  "query": {
    "bool": {
      "must": [
        {
          "exists": {
            "field": "age"
          }
        }
      ]
    }
  }
}

此外update和_update_by_query字段还可以修改Filed,例如将name修改成name1,这块内容使用较少,如感兴趣,请参考官方文档。

映射和类型mapping

https://blog.csdn.net/Andre_dong/article/details/109672646

include_type_name:

在Elasticsearch 6.0.0或更高版本中创建的索引只能包含一个映射类型.在5.x中创建的具有多种映射类型的索引将继续像在Elasticsearch 6.x中一样工作.映射类型将在Elasticsearch 7.0.0中完全删除。

查看指定index的映射:

复制代码
GET test_omp/_mapping

添加指定index的映射(会顺带添加index):

复制代码
PUT test_omp?include_type_name=false
{
    "mappings": {
        "properties": {
            "service": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "class": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            },
            "omp_request_log": {
                "properties": {
                    "id": {
                        "type": "text"
                    },
                    "requestId": {
                        "type": "text"
                    },
                    "requestMethod": {
                        "type": "keyword"
                    },
                    "uri": {
                        "type": "text"
                    },
                    "requestHeader": {
                        "type": "text"
                    },
                    "requestParams": {
                        "type": "text"
                    },
                    "requestBody": {
                        "type": "text"
                    },
                    "responseCode": {
                        "type": "text"
                    },
                    "responseMsg": {
                        "type": "text"
                    },
                    "responseBody": {
                        "type": "text"
                    },
                    "bizResponseBody": {
                        "type": "text"
                    },
                    "exception": {
                        "type": "text"
                    },
                    "ipAddress": {
                        "type": "text"
                    },
                    "execTime": {
                        "type": "long"
                    },
                    "sysId": {
                        "type": "text"
                    },
                    "createTime": {
                        "type": "date"
                    },
                    "updateTime": {
                        "type": "date"
                    }
                }
            }
        }
    }
}

类型type:

https://www.cnblogs.com/koenigsea/p/13072923.html

相关推荐
zgl_200537793 分钟前
源代码:跨数据库通用“字段级”数据血缘解析与图形化(2/3:标注信息的拆解、检验、保存)
大数据·数据库·数据仓库·sql·数据挖掘·etl·嵌入式实时数据库
BD_Marathon10 分钟前
Hadoop常用端口号
java·大数据·hadoop
智恒百亿12 分钟前
企业 AI 推理本地化部署:GPU 服务器选型技术分析(2026 年 8 月)
大数据·服务器·人工智能
黎阳之光12 分钟前
软硬协同国产化 | 黎阳之光矩阵式视频融合管理系统完成摩尔线程国产GPU兼容适配
大数据·人工智能·物联网·安全·数字孪生
长谷深风11119 分钟前
读懂 MCP:能力、传输与多 Server 连接
java·大数据·ai·ai agent·mcp·streamable http·agent设计
Elasticsearch21 分钟前
机构如何统一智慧城市数据以改善公共服务?
elasticsearch
whcyhhh21 分钟前
头歌实践教学平台:数据科学与大数据技术导论(十八2)
大数据·开发语言·python
智圣新创0127 分钟前
存量数字化校园升级破局:从基础数据集成到校务服务全域提效的通用落地路径
大数据·人工智能·物联网
SelectDB技术团队1 小时前
Apache Doris 在内容 AI 生产链路中的实践:从内容打标到可追溯数据链路
大数据·人工智能·大模型·向量检索·混合搜索·ai 打标·内容分析
云飞云共享云桌面1 小时前
机械设计研发成本优化:怎样用一台高性能服务器替代 10 台 SolidWorks 工作站?
大数据·运维·服务器·汽车·制造