一、索引的增删改查rest 肯定要大写哦哈哈减少索引 : customer 索引名,_doc type类型 ,1 文档id 大括号中的为 申请体(及数据)1、创立索引PUT /索引名/类型名(会删除)/文档id { 申请体}阐明:PUT手动指定索引 例:创立索引PUT /customer/_doc/1{ "name": "John Doe"}2、查问索引GET /customer/_doc/13、删除索引DELETE /customer4、批改PUT /customer/_doc/1 { "name": "大帅逼"}阐明:这种形式会将version版本号减少,然而增加时须要与后面文档中数据数目统一不然会失落数据POST /test20210304/_doc/1/_update{ "doc":{ "name": "大帅逼" }}二、索引的属性批改创立索引规定,就像设置数据库的一些参数一样,PUT /test1{ "mappings": { "properties": { "name": { "type":"text" } } }}阐明:设置文档中对应词组的类型GET /test1 查看索引的信息三、查看elasticsearch状态GET _cat/ 获取es的信息状态
四、文档的操作
1、基本操作
1)增加数据
PUT /testbasedoc/_doc/1{ "name":"大帅比大水笔", "age":"23", "desc":"喜之郎果冻,盼盼我爱你", "likes":["java 爪哇","可恶","刘月半"] }
PUT /testbasedoc/_doc/2{ "name":"鸡蛋", "age":"23", "desc":"喜之冻,牙医媒体", "likes":["电影ae,ar","胖胖","倩妹子"]}
PUT /testbasedoc/_doc/3{ "name":"鸭蛋", "age":"23", "desc":"趣味使然的理发师", "likes":["打游戏","剪头发","妹子"]}
2)查问GET testbasedoc/_doc/1
3)更新
POST /test20210304/_doc/1/_update{ "doc":{ "name": "大帅比2" }}
4)删除文档
DELETE /tehero_index/_doc/1
5)批量操作文档
a、查问多个_mget
POST /_mget{ "docs":[ { "_index": "testbasedoc", "_id": "1" }, { "_index":"testbasedoc", "_id": "2" } ]}
b、批量执行多个操作
POST _bulk## 替换指定文档{ "index" : { "_index" : "testbasedoc", "_type" : "_doc", "_id" : "1" } }{ "this_is_field1" : "this_is_index_value" }##删除指定文档{ "delete" : { "_index" : "testbasedoc", "_type" : "_doc", "_id" : "1" } }##创立文档{ "create" : { "_index" : "testbasedoc", "_type" : "_doc", "_id" : "1" } }{ "name":"大帅比大水笔","age":"23","desc":"喜之郎果冻,盼盼我爱你","likes":["java 爪哇","可恶","刘月半"]}##更新文档{ "update" : {"_id" : "1", "_type" : "_doc", "_index" : "testbasedoc"} }{ "doc" : {"age" : "24"} }在7.X中也能够去掉"_type" : "_doc"
2、简单操作 (排序,分页,高亮,含糊查问,精准查问)
1)简略搜寻_search?q=name:大帅比java
a、GET testbasedoc/_doc/_search?q=name:大帅比jav
b、GET /testbasedoc,customer/_search?q=name:"wenye" 多索引查问对立条件
GET testbasedoc/_doc/_search{ "query": { "match": { "name":"大帅比" } }}
查问后果
2)聚合查问 metric,bucket
metric:avf 、min、max、cardinality、sum、stats等
Bucket:想当与group by
1)平均值
POST /testbasedoc/_search{ "aggs":{ "avg_age":{"avg":{"field":"age"}} }}
2)计数
POST /schools*/_search{ "aggs":{ "distinct_name_count":{"cardinality":{"field":"name"}} }}
3)统计
POST /schools/_search{ "aggs" : { "fees_stats" : { "stats" : { "field" : "fees" } } }}
4) 最大聚合
POST /schools*/_search{ "aggs" : { "max_fees" : { "max" : { "field" : "fees" } } }}
5) 最小聚合
POST /schools*/_search{ "aggs" : { "min_fees" : { "min" : { "field" : "fees" } } }}
6)特定字段的总和
POST /schools*/_search{ "aggs" : { "total_fees" : { "sum" : { "field" : "fees" } } }}
7)terms 桶 准确查问 依据倒排索引进行准确索引
GET /testbasedoc1/_search{ "aggs": { # 应用聚合的必须带如设置_mapping 必须以properties结尾 "boyfirl_term": { "terms": { "field": "age" }, "aggs" :{ "avg_age":{ "avg":{"field":"age"} } } } }}
3、搜寻相干
#搜寻#简略搜寻 match_allPOST /testbasedoc1/_search{ "query": { "match_all": {} }, "_source": ["name","age"] # 指定显示的字段}#分页查问POST /testbasedoc1/_search{ "from":0, #哪里开始 "size": 2, #查问出的总个数 "query": { "match_all": {} }}#排序POST /testbasedoc1/_search{ "sort":[{"age":"asc"}], "from":0, "size": 20, "query": { "match_all": {} }}#match 匹配查问POST /testbasedoc1/_search{ "query": { "match": { "age": 23 } }}#(multi_mathc)多种匹配查问POST /testbasedoc1/_search{ "query": { "multi_match": { "query": "23", #value "fields": ["name","age"] #column 数组 } }}#布尔查问POST /testbasedoc1/_search{ "query": { "bool":{ #返回的会是boolean值 "must":[ #must 必须相等 must_not 不相等 should (or) { "match":{ "name":"大帅比" } }, { "match": { "age":"23" } } ] } }}#过滤POST /testbasedoc1/_search{ "query": { "bool":{ "must":[ { "match":{ "name":"鸭蛋" } }, { "match": { "age":"24" } } ], "filter": [ #过滤 { "range": { "FIELD": { "gte": 10, "lte": 20 } } } ] } }}#query :查问蕴含str的文档POST /testbasedoc1/_search{ "query":{ "query_string":{ "query":"爱" } }}#短语搜寻 - Match Phrase 搞不清POST testbasedoc1/_search{ "query": { "match_phrase": { "desc":{ "query": "趣味使,然理发师" , "slop": 1 } } }}#term 查问 次要用于数字日期相干POST /testbasedoc/_search{ "query":{ "term":{"age":"23"} }}#range 查问范畴查问POST /testbasedoc*/_search{ "query":{ "range":{ "age":{ "gte":3.5 #gte:大于等于 gt:大于 lte:小于等于 lt:小于 } } }}
4、对于分词
- term : 准确查问,不会对词组进行解析
- match: 先进行文档解析,而后进行匹配
- 类型为keyword的不会被分词器解析
5、高亮显示
默认:POST /testbasedoc/_search{ "query":{ "match":{"name":"大帅比"} }, "highlight": { "fields": { "name": {} } }}自定义 高亮条件 pre_tags post_tages:POST /testbasedoc/_search{ "query":{ "match":{"name":"大帅比"} }, "highlight": { "pre_tags":"<p class='key' style='color:red'>", "post_tags":"</p>", "fields": { "name": {} } }}匹配的后果"hits" : [ { "_index" : "testbasedoc", "_type" : "_doc", "_id" : "1", "_score" : 2.0487494, "_source" : { "name" : "大帅比大水笔", "age" : 23, "desc" : "喜之郎果冻,盼盼我爱你", "likes" : [ "java 爪哇", "可恶", "刘月半" ] }, "highlight" : { "name" : [ "<em>文</em><em>烨</em>大水笔" 高亮 ]