GET _search
{
"query": {
"match_all": {}
}
}
# 1 基础操作
PUT s18/doc/1
{
"name": "大刀"
}
PUT s18/doc/2
{
"name": "鹏程"
}
GET s18/doc/1
GET s18/doc/_search?q-name:laowang
GET s18/doc/_search
DELETE s18/doc/1
DELETE s18
GET s18/_mapping
GET s18/_settings
GET s18
# 2 CURD之p
PUT zhifou/doc/1
{
"name":"顾老二",
"age":18,
"sex":"男",
"from": "gu",
"desc": "皮肤黑、武器长、性格直",
"tags": ["黑", "长", "直"]
}
PUT zhifou/doc/2
{
"name":"大娘子",
"age":18,
"sex":"女",
"from":"sheng",
"desc":"肤白貌美,娇憨可爱",
"tags":["白", "富","美"]
}
PUT zhifou/doc/3
{
"name":"龙套偏房",
"age":22,
"sex":"男",
"from":"gu",
"desc":"mmp,没怎么看,不知道怎么形容",
"tags":["造数据", "真","难"]
}
PUT zhifou/doc/4
{
"name":"石头",
"age":29,
"sex":"男",
"from":"gu",
"desc":"粗中有细,狐假虎威",
"tags":["粗", "大","猛"]
}
PUT zhifou/doc/5
{
"name":"魏行首",
"age":25,
"sex":"男",
"from":"广云台",
"desc":"仿佛兮若轻云之蔽月,飘飘兮若流风之回雪,mmp,最后竟然没有嫁给顾老二!",
"tags":["闭月","羞花"]
}
GET zhifou/doc/1
POST zhifou/doc/1/_update
{
"doc":{
"desc":"皮肤很黄,武器很长,性格很直",
"tags":["很黄","很长", "很直"]
}
}
# 字符串查询
GET zhifou/doc/_search?q=age:25
# 结构化查询
GET zhifou/doc/_search
{
"query": {
"match": {
"age": "25"
}
}
}
# select all 排序 数字
GET zhifou/doc/_search
{
"query":{
"match_all":{}
},
"sort":{
"age":{
"order":"desc"
}
}
}
# 分页查询
GET zhifou/doc/_search
{
"query":{
"match_all": {}
},
"from":0,
"size": 2
}
# 布尔 bool 查询: should(or) must(and) must_not(not)
GET zhifou/doc/_search
{
"query": {
"bool": {
"should":[
{
"match":{
"sex":"男"
}
},{
"match": {
"age": "18"
}
}
]
}
}
}
# 布尔 bool 查询 : 大于(gt), 大于等(gte), 小于(le),小于等于(lte)
GET zhifou/doc/_search
{
"query": {
"bool": {
"must":[
{
"match":{
"sex":"男"
}
}
],
"filter": {
"range": {
"age":{
"lte": 25
}
}
}
}
}
}
# 高亮查询
GET zhifou/doc/_search
{
"query": {
"match": {
"name": "顾老二"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
GET zhifou/doc/_search
{
"query": {
"match": {
"name": "顾老二"
}
},
"highlight": {
"pre_tags": "<b style='color:red', font-size:20px>",
"post_tags": "</b>",
"fields": {
"name": {}
}
}
}
# 结果过滤
GET zhifou/doc/_search
{
"query": {
"match":{
"name":"顾老二"
}
},
"_source": ["age","desc"]
}
# 聚合查询, min, max, avg
GET zhifou/doc/_search
{
"query": {
"match": {
"sex": "男"
}
},
"aggs": {
"my_min": {
"min": {
"field": "age"
}
}
}
}
# 聚合查询 分组
GET zhifou/doc/_search
{
"query": {
"match": {
"sex": "男"
}
},
"aggs": {
"group": {
"range": {
"field": "age",
"ranges": [
{
"from": 0,
"to": 10
},
{
"from": 10,
"to": 20
},
{
"from": 20,
"to":30
}
]
}
}
}
}
# mapping的dynamic的三种状态, true, false, strict
DELETE s1
PUT s1
{
"mappings": {
"doc":{
"dynamic":true,
"properties":{
"name":{
"type":"text"
}
}
}
}
}
GET s1/_mapping
PUT s2
{
"mappings": {
"doc":{
"dynamic":false,
"properties":{
"name":{
"type":"text"
}
}
}
}
}
GET s2/_mapping
PUT s1/doc/1
{
"name":"金星",
"age":12,
"desc":"金老师的弟弟",
"tags":"帅"
}
PUT s2/doc/2
{
"name":"冰玉",
"age":17,
"desc":"漂亮的姑娘",
"tags":"漂亮"
}
GET s1/doc/_search
{
"query":{
"match": {
"name": "金星"
}
}
}
GET s2/doc/_search
{
"query":{
"match": {
"age": "17"
}
}
}
# 严格设置 index 的字段,添加会出错的
PUT s3
{
"mappings": {
"doc":{
"dynamic":"strict",
"properties":{
"name":{
"type":"text"
}
}
}
}
}
GET s3/_mapping
PUT s3/doc/1
{
"name":"he"
}
PUT s3/doc/2
{
"name":"qiao",
"age":23
}
GET s3/doc/_search
{
"query": {
"match": {
"name": "he"
}
}
}
# mappings 的参数: ignore_above <int> 设备超过多大就不需要设置索引
# mappings 的参数: index <ture, false> 不对这个字段做索引
# mappings 的参数: copy_to , 把某个对应的值 copy 到对应一个字段
DELETE w1
# 嵌套的 index
PUT w1
{
"mappings":{
"doc":{
"properties":{
"name":{
"type":"text"
},
"age":{
"type":"long"
},
"info":{
"properties":{
"addr":{
"type":"text"
},
"tel":{
"type":"long"
}
}
}
}
}
}
}
PUT w1/doc/1
{
"name":"tom",
"age":19,
"info":{
"addr":"北京",
"tel":1234
}
}
GET w1/doc/_search
{
"query": {
"match": {
"info.addr": "北京"
}
}
}
# 设置主分片
DELETE w2
PUT w2
{
"mappings":{
"doc": {
"properties":{
"title":{
"type":"text"
}
}
}
},
"settings": {
"number_of_replicas": 3,
"number_of_shards": 3
}
}
# 短语查询,最左前缀查询,同时查询在多个字段查询
PUT t1/doc/1
{
"title":"中国是世界人口最多的国家"
}
PUT t1/doc/2
{
"title":"美国是世界金融中心"
}
PUT t1/doc/3
{
"title":"中国是美丽的国家"
}
GET t1/doc/_search
{
"query": {
"match_phrase": {
"title": {
"query": "中国人口",
"slop": 3
}
}
}
}
PUT t2/doc/1
{
"title":"beautiful girl"
}
PUT t2/doc/2
{
"title":"beautiful so"
}
GET t2/doc/_search
{
"query": {
"match_phrase_prefix": {
"title": "beau"
}
}
}
PUT t3/doc/1
{
"t1":"beautiful girl",
"t2":"beautiful so"
}
GET t3/doc/_search
{
"query": {
"multi_match": {
"query": "so",
"fields": ["t1","t2"]
}
}
}
POST _analyze
{
"analyzer": "standard",
"text": "我是最帅气的人"
}
POST _analyze
{
"analyzer": "snowball",
"text": "我是最帅气的人"
}
GET _cat/indices
elasticsearch - 基础操作01
1662 views