Elasticsearch 是一个分布式搜索和分析引擎,广泛用于日志和事件数据分析、全文搜索等。以下是一些常用的 Elasticsearch 命令和操作的详细说明。
基础命令
索引操作
创建索引
PUT /index_name
示例:
PUT /my_index
删除索引
DELETE /index_name
示例:
DELETE /my_index
查看索引信息
GET /index_name
示例:
GET /my_index
列出所有索引
GET /_cat/indices?v
文档操作
创建或更新文档
POST /index_name/_doc/document_id
示例:
POST /my_index/_doc/1
{
"name": "John Doe",
"age": 30
}
获取文档
GET /index_name/_doc/document_id
示例:
GET /my_index/_doc/1
删除文档
DELETE /index_name/_doc/document_id
示例:
DELETE /my_index/_doc/1
查询操作
简单查询
GET /index_name/_search
{
"query": {
"match": {
"field_name": "search_term"
}
}
}
示例:
GET /my_index/_search
{
"query": {
"match": {
"name": "John"
}
}
}
复杂查询
GET /index_name/_search
{
"query": {
"bool": {
"must": [
{ "match": { "field1": "value1" }},
{ "match": { "field2": "value2" }}
],
"filter": [
{ "term": { "field3": "value3" }}
]
}
}
}
示例:
GET /my_index/_search
{
"query": {
"bool": {
"must": [
{ "match": { "name": "John" }},
{ "match": { "age": 30 }}
],
"filter": [
{ "term": { "active": true }}
]
}
}
}
聚合操作
简单聚合
GET /index_name/_search
{
"size": 0,
"aggs": {
"aggregation_name": {
"terms": {
"field": "field_name"
}
}
}
}
示例:
GET /my_index/_search
{
"size": 0,
"aggs": {
"age_distribution": {
"terms": {
"field": "age"
}
}
}
}
管理操作
查看节点状态
GET /_cat/nodes?v
查看集群健康状态
GET /_cat/health?v
查看集群状态
GET /_cluster/health
查看分片状态
GET /_cat/shards?v
查看索引映射
GET /index_name/_mapping
示例:
GET /my_index/_mapping
这些是一些基本的 Elasticsearch 命令,可以帮助你在日常使用中进行索引、文档和查询操作。根据具体需求,Elasticsearch 提供了更为丰富和复杂的功能。