ElasticSearch的增、删、改、查操作

来源:互联网 发布:淘宝网mac版下载 编辑:程序博客网 时间:2024/05/18 00:06

本文分成两部分,一部分介绍在elasticsearch中索引的创建,第二部分介绍elasticsearch的基本操作.

(1)首先我们创建一个index:

1.在elasticsearch的webui界面中有一个add index中可以创建索引,填入所以的分片数和备份数即可。

索引创建好了,接下来就是创建类别和文档,如下我创建一个person表,包含name,age,示例如:

{"man":{"properties":{"name":{"type":"text"},"age":{"type":"Integer"}}}}
然后可以用“put”预防将上述的json提交至master节点地址:127.0.0.1/person/man

2.当然我们也可以基于put语法直接创建索引类别文档,同样基于“put”的语法,在提交的json中创建索引。

{ "setting":{ "number_of_shards":3,//分片数 "number_of_replicas:":1//备份数 }, "mappings":{"properties":{ "man":{ "name":{ "type":"text" }, "age":{"type":"integer"} }}}}
访问master节点地址 :127.0.0.1/person即可。

(2)数据的插入:

(1)基于”post“语法,访问127.0.0.1/person/man,提交一条记录至创建的person表中:

{"name":"网络","age":30}


插入数据后,数据表中会自动生成一个id,如果我们想自己生成id该如何做?那也很方便访问127.0.0.1/person/man/1,以put语法提交json就ok了。

{"name":"网络2","age":34}
这里的id=1,即指定文档1
(2)数据的删除比较简单,以delete方式访问索引、类别、文档即可

(3)查询和更新的查找原理类似,主要在一些语法方面的区别,下面将列一些常见的操作。

group by聚合
{  "aggs": {    "group_by_name": {      "terms": {        "field": "country"      }    }  }}//count 字段为keywords
查询年龄字段为30的数据并以倒序排列
{  "query": {    "match": {      "age": 30    }  },  "sort": [    {      "date": {        "order": "desc"      }    }  ]}//date不是text 类型
{  "query": {    "match": {      "name": "网络"    }  },  "sort": [    {      "date": {        "order": "desc"      }    }  ]}//模糊匹配


{  "query": {    "match_phrase": {      "name": "网络"    }  },  "sort": [    {      "date": {        "order": "desc"      }    }  ]}//精确匹配

{  "query": {    "multi_match": {      "query": "5",      "fields": [        "name"      ]    }  },  "sort": [    {      "date": {        "order": "desc"      }    }  ]}//多个条件或查询,查询字段类型为text


{  "query": {    "query_string": {      "query": "(5 AND he)OR 网络"    },"fields": [        "name"      ]  },  "sort": [    {      "date": {        "order": "desc"      }    }  ]}//语句查询


结构化语句的查询{  "query": {    "term": {      "age": 30    }  },  "sort": [    {      "date": {        "order": "desc"      }    }  ]}{  "query": {    "range": {      "age": {        "gt": "2",        "lte": "42"      }    }  },  "sort": [    {      "date": {        "order": "desc"      }    }  ]}

过滤器{  "query": {    "bool": {      "filter": {        "term": {          "name": "5"        }      }    }  }}

固定分数查询{  "query": {    "match": {      "name": "5"    }  }}






原创粉丝点击