ElasticSearch的增、删、改、查操作

本文分成两部分,一部分介绍在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"
    }
  }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值