创建index的语法格式如下。首先要加入一些setting,关于setting的一些具体设置请看(https://blog.csdn.net/Interstellar_/article/details/81355589)。然后是映射mappings的一些设置,具体内容请看(https://blog.csdn.net/interstellar_/article/details/81353678)。
PUT index_name
{
"settings" : {
// ... some settings ... //
},
"mappings" : {
"_doc" : {
"properties" : {
"name" : { "type" : "text" },
"sex" : { "type" : "keyword" }
}
}
},
"aliases" : {
"alias_name1" : {
"filter" : {
"term" : { "sex" : "male" }
}
}
}
}
最后,我们可以为索引设置一些别名alias,这个别名就类似于MySQL中的视图。如上面的别名alias_name1中,我们添加了一个过滤器,它会把sex为male的数据筛选出来。也就是说,当我们执行GET /alias_name1/_search时,只会得到sex字段为male的文档。
删除索引
DELETE /index_name
查某索引是否存在
HEAD index_name
(1). 使用PUT(需要提供id。该方法是幂等的,相当于在该url中存储文档)
PUT twitter/_doc/1
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
(2) 使用POST(可以不提供id,由系统自动生成id)
POST twitter/_doc
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elasticsearch"
}
PUT my_index/_doc/1
{
"name" : "xiaoming",
"age" : 12
}
比如,要将xiaoming的年龄改为22岁。若使用以下代码,则会替换掉上面的文档,使得1号文档中只有age字段。
POST my_index/_doc/1
{
"age" : 22
}
可以采用下面的方法
POST my_index/_doc/1/_update
{
"doc" : {
"age" : "22"
}
}
我们还可以编写脚本来更新
POST my_index/_doc/1/_update
{
"script" : {
"source" : "ctx._source.age += params.age",
"lang" : "painless",
"params": {
"age" : 10
}
}
}
POST my_index/_doc/1/_update
{
"script" : {
"source" : "ctx._source.name = params.name",
"lang" : "painless",
"params": {
"name" : "shuaijie"
}
}
}
POST my_index/_doc/1/_update
{
"script" : {
"source" : "ctx._source.name = 'xiaohong'"
}
}
PUT my_index/_mapping/_doc
{
"properties": {
"new_column": {
"type": "integer"
}
}
}