ElasticSearch的基本API

ElasticSearch的基本API

索引

创建空索引

put  /index_name
{
    "settings" : {
        "number_of_shards" : 3,
        "number_of_replicas" : 1
    }
}

创建一个索引名为index_name的空索引,并且设置3个主分片,一个备份分片。

获取索引

GET /index_name

获取index_name的索引信息,支持通配符搜索

删除索引

DELETE /index_name

删除名称为index_name的索引。

DELETE /index_name1, index_name2

删除多个索引

DELETE /_all

删除所有的索引。

修改索引设置

PUT /index_name/_setting
{
    "number_of_replicas": 1
}

修改index_name的索引,设置备份分片为1

打开或关闭索引

POST /index_name/_close
{
}

关闭索引,搜索时只能显示元数据不能显示具体的数据

POST /index_name/_open
{
}

开启索引,可以搜索的具体的数据

索引别名

POST /
{
"actions" : [
{ "remove" : { "index" : "index_name", "alias" : "alias1" } },
{ "add" : { "index" : "index_name", "alias" : "alias2" } }
]
}
remove用于删除别名,add用于添加别名,可以先使用remove然后使用add用于修改指定索引的别名。

文档

插入数据

PUT  /index_name/type_name/doc_id
{
     "key1": "value1",
     "key2": "value2",
     "key3": "value3"
     ......
}

指定文档id进行上传

POST  /index_name/type_name/
{
     "key1": "value1",
     "key2": "value2",
     "key3": "value3"
     ......
}

不指定文档id上传,系统会生成一个唯一的文档id

修改文档

文档在ElasticSearch中是不可变,修改文档的逻辑是新建一个文档覆盖旧文档。

PUT  /index_name/type_name/doc_id
{
     "key11": "value11",
     "key22": "value22",
     "key33": "value33"
}

响应中_version字段会加一。

删除文档

DELETE  /index_name/type_name/doc_id

删除指定id的文档

查询

空搜索

GET /_search

没有指定任何查询条件,只返回索引中的所有文档

多索引搜索

GET /index_1,index_2/_search

在index index_1和index_2中搜索

GET /index_name/type_name/doc_id/_source

只获取指定id的source内容,会忽略元信息

GET /index_1,index_2/type_1,type_2/_search

在indexindex_1和index_2中搜索类型type_1和type_2

POST  /_mget
{
  "docs" : [
            {"_index" : "index_name1","_type" : "type_name1","_id" : "doc_id1"},
            {"_index" : "index_name2","_type":"type_name2","_id" :"doc_id2"}
      ]
}

分页

GET  /_search?size=5&from=5

使用size和from进行分页

简易搜索

将搜索条件在查询字符串中,如:

GET /_all/index_name/_search?q=filed_name:field_value

搜索所有索引中类型为index_name索引中filed_name中包含filed_value的文档。

posted @ 2018-01-16 00:10  寒来袖间  阅读(1004)  评论(0编辑  收藏  举报