Search微服务

一文学会ES的API接口

2021-06-20  本文已影响0人  sknfie

概述

Elasticsearch 是面向文档型数据库,这意味着它存储的是整个对象或者文档,不但会存储它们,还会为他们建立索引,这样你就可以搜索他们了。
我们可以在 Elasticsearch 中索引、搜索、排序和过滤这些文档。不需要成行成列的数据。这将会是完全不同的一种面对数据的检索方式,这也是为什么 Elasticsearch 可以执行复杂的全文搜索的原因。

ES与DB的区别

在 Elasticsearch 中,文档属于一种 类型(type),各种各样的类型存在于一个 索引 中。你也可以通过类比传统的关系数据库得到一些大致的相似之处:


ES与DB的区别

Restful API使用

可以在curl后加-i参数得到响应头

curl -i -XGET http://localhost:9200/website/blog/124?pretty

使用postman进行的一些简单操作,kibana会有些差异,但不大

1.查看集群健康状况
GET /_cat/health?v&pretty
 
2.查看my_index的mapping和setting的相关信息
GET /my_index?pretty
 
3.查看所有的index
GET /_cat/indices?v&pretty
创建只有一个主分片,没有复制分片的小索引。
 
PUT /my_temp_index
{
  "settings": {
  "number_of_shards" : 1,
  "number_of_replicas" : 0
  }
}

用 update-index-settings API 动态修改复制分片个数:

PUT /my_temp_index/_settings
{
 "number_of_replicas": 1
}

删除索引

DELETE /my_index
删除多个索引
DELETE /index_one,index_two
DELETE /index_*
删除多个索引
DELETE /_all

只得到_source字段而不要其他的元数据,你可以这样请求

GET /website/blog/123/_source
//创建索引用put  ip:9200/person
{
    "settings":{
        "number_of_shards":3,
        "number_of_replicas":1
    },
    "mappings":{
        "man":{
            "properties":{
                "name":{
                    "type":"text"
                },
                "age":{
                    "type":"integer"
                }
            }
        }
    }
}
//手动id添加文档put(其实走的是修改)    ip:9200/person/man/1
{
    "name":"111",
    "age":11
}
 
//自动id添加文档post    ip:9200/person/man
{
    "name":"111",
    "age":11
}
 
//doc修改post  ip:9200/person/man/1/_update
{
    "doc":{
        "name":"大大阿达"
    }
}
 
//脚本修改post  ip:9200/person/man/1/_update
{
    "script":"painless",
    "inline":"ctx._source.name = 'zzzzz'",
    "inlines":"ctx._dource.nname = params.name",
    "parames":{
        "name":"newName"
    }
}
 
//删除文档delete  ip:9200/person/man/1
//删除索引delete  ip:9200/person(无法删除类型)
 
 
//根据id查询文档get  ip:9200/person/man/1
 
//根据条件查询分页 排序post ip:9200/person/man/_search
{
    "query":{
        "match":{
            "name":"zzz"
        },
        "from":1,
        "size":5,
        "sort":[
                "age":{
                    "order":"desc"
                }
            ]
    }
}
 
//查询全部  post ip:9200/person/man/_search
{
    "query":{
        "match_all":{}
    }
}
 
//分组查询post  ip:9200/person/man/_search
{
    "aggs":{
        "group_by_age":{
            "terms":{
                "field":"age"
            }
        }
    }
}
 
//聚合 多行函数(也可单个max,min) post ip:9200/person/man/_search
{
    "aggs":{
        "many_function":{
            "stats":{
                "field":"age"
            }
        }
    }
}

以上是对es的一些梳理

上一篇 下一篇

猜你喜欢

热点阅读