ElasticSearch 使用 JSON 增删改查方法

1、创建索引

地址:127.0.0.1:9200/[索引名]

方法:PUT

{ "settings": { //关键词 索引配置 "number_of_shards": 3, //索引分片数 "number_of_replicas": 1 //索引备份数 } }

 

 

新增、修改索引

地址:127.0.0.1:9200/ [索引名] / [类型] /_mapping?pretty

方法:POST、PUT

{ "novel": { //类型名 "properties": { //配置 "name": { "type": "text" }, "author": { "type": "text" }, "startDate": { "type": "date" }, "endDate": { "type": "date" } } } }

 

 

 

2、插入数据

地址:127.0.0.1:9200/ [索引名] / [类型] / [指定id]

方法:PUT

指定文档id(唯一索引值指向文档数据)插入格式:

{ "name": "test", "date": "2018-08-29" }

自动产生文档id

地址:127.0.0.1:9200/ [索引名] / [类型]

方法:POST

{ "name": "test", "date": "2018-08-29" }

 

3、修改文档数据

直接修改文档:

地址:127.0.0.1:9200/ [索引名] / [类型] / [文档id] /_update (修改关键词)

方法:POST

{ "doc": { "name": "测试" } }

脚本修改文档:

地址:127.0.0.1:9200/ [索引名] / [类型名] / [文档id] /_update (修改关键词)

方法:POST

{ "script": { "long": "painless", //ElasticSearch内置脚本语言 "inline": "ctx._source.name = params.name", "params": { "name": "测试" } } }

 

4、删除操作

删除文档

地址:127.0.0.1:9200/ [索引名] / [类型] / [文档id]

方法:DELETE

返回结果部分字段意思:

{ "found": true, //查询陈公公 "_index": "people", //索引名 "_type": "man", //类型 "_id": "1", //文档id "result": "deleted" //删除成功标志 }

删除索引

地址:127.0.0.1:9200/ [索引名]

方法:DELETE

返回结果:

{ "acknowledged": true //删除成功 }

 

5、查询

1.简单查询

地址:127.0.0.1:9200/ [索引名] / [类型] / [文档id]

方法:GET

2.查询所有

地址:127.0.0.1:9200/ [索引名] / _search

方法:POST

{ "query": { //关键词 "matach_all": { } //查询该索引下所有数据 }, "from": 1, //指定从哪里返回 "size": 1 //指定返回几条数据 }

3.条件查询

{ "query": { "match": { //查询该索引下所有数据 "tite": "test" //字段以及值 } }, "from": 1, //指定从哪里返回 "size": 1, //指定返回几条数据 "sort": { //排序 "date": { "order": "desc" } } }

返回结果部分意思:

{ "took": 4, //响应时间 毫秒 "hits": { //查询结果 "total": 11 //数据条数 } }

4.聚合查询

地址:127.0.0.1:9200/ [索引名] /_search

方法:POST

{ "aggs": { //聚合查询关键词 "group_by_word_count": { //自定义名字 "terms": { //关键词 "field": "name" //指定聚合字段 } } } }

1)数值统计

{ "aggs": { "group_by_word_count": { //自定义名字 "stats": { //计算关键词可替换为min(最小值sum(和)max(最大值)avg(平均值) "field": "name" //指定聚合字段 } } } }

 

6、高级查询

地址:127.0.0.1:9200/_search

方法:POST

1.子条件查询

1)query context

1.1)全文本查询:针对文本类型数据

1.1.1)模糊匹配:

{ "query": { "match": { // match_phrase(细语匹配) 关键词 "name": "测试" //模糊匹配,分词 } } }

1.1.2)多字段匹配

{ "query": { "multi_match": { "query": "test", //只当查询内容 "fields": ["name","desc"] //对应字段 只要满足其一就返回 } } }

1.2)语法查询

{ "query": { "query_string": { //语法查询 "query": "(test AND 测试) OR 示例", "fields": ["name","desc"] //查询字段不写默认所有的 } } }

1.2)字段级别查询:针对结构化数据,如数字、日期等

{ "query": { "term": { "name": "测试" } } }

1.3)范围查询

{ "query": { "range": { //范围 "sex": { "gte": 20, //大于等于 e 表示等于 "lte": 10 //小于等于 } } } }

2)filter context 数据过滤和缓存数据

{ "query": { "bool": { "filter": { "term": { "name": "test" } } } } }

2.复合条件查询

1)固定分数查询:

地址:127.0.0.1:9200/_search

方法:POST

{ "query": { "constant_score": { "filter": { "match": { "title": "ElasticSearch" } }, "boots": 2 //固定分数 } } }

2)布尔查询

2.1)满足其一

{ "query": { "bool": { "shoule": [ { "match": { "author": "test" } }, { "match": { "title": "ElasticSearch" } } ] } } }

2.2)全部满足

{ "query": { "bool": { "must": [ { "match": { "author": "test" } }, { "match": { "title": "ElasticSearch" } } ] } } }

2.3)全部满足并过滤

{ "query": { "bool": { "must": [ { "match": { "author": "test" } }, { "match": { "title": "ElasticSearch" } } ], "filter": { "term": { "name": "test" } } } } }

2.4)一定不满足的条件

{ "query": { "bool": { "must_not": { "term": { "name": "test" } } } } }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值