Elasticsearch学习(一)索引

1. 创建index

创建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

2. 插入文档

(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"
}


        

3. 更新文档

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'"
   }
}

4. 添加文档字段

PUT my_index/_mapping/_doc
{
  "properties": {
    "new_column": { 
      "type":     "integer"
    }
  }
}

 

你可能感兴趣的:(elasticsearch)