Elasticsearch初级语句入门

# 创建索引
PUT test
{
  "settings": {
    "index":{
      "number_of_shards":5,
      "number_of_replicas":1
    }
  }
}

# 使用默认配置创建索引pretty只是为了如果json返回打印更  加的漂亮一点
PUT test2?pretty
# 更改索引值
PUT test/_settings 
{
  "number_of_replicas":0
}

# 查看指定的索引配置信息
GET test/_settings

# 查看所有的索引配置信息
GET _all/_settings

# 查看所有的索引的健康信息
GET /_cat/indices?v

# 向索引库中添加文档
PUT /test/zjj/1
{
  "name":"xiaou",
  "age":18,
  "desc":"我是xiaou"
}

# 通过id获得信息
GET /test/zjj/1

# GET /test/zjj出现问题
# 对查询数据筛选
GET /test/zjj/1?_source=age,desc

# 修改文档 
# 1覆盖id
PUT /test/zjj/1
{
    "age":"20"
}

# 2修改
POST /test/zjj/1
{
  "age":18
}

# 更新

POST /test/zjj/1/_update?pretty
{
  "script" : "ctx._source.age += 5"
}
# 删除

DELETE test/zjj/2

# 删除索引库
DELETE test

 查询语句

PUT xiaou
{

  "settings":{
  
      "index":{
        "number_of_shards": 3,
        "number_of_replicas": 0
        }
      }
}


POST /xiaou/test/_bulk
{"index":{"_id":1}}
{"title":"Java","price":55}
{"index":{"_id":2}}
{"title":"php","price":60}
{"index":{"_id":3}}
{"title":"ww","price":75}

GET xiaou/test/_mget
{
  "ids":["1","2","3","4"]
}

POST /xiaou/test/_bulk
{"delete":{"_id":1}}
{"create":{"_id":4}}
{"title":"javascript","price":75}
{"index":{"_index":"test3","_type":"t","_id":1}}
{"name":"xiaou"}
{"update":{"_index":"xiaou","_type":"test","_id":3}}
{"doc":{"price":58}}

POST /xiaou/test/_bulk
{"index":{"_id":1}}
{"title":"i love java"}
GET /xiaou/_mapping

GET xiaou/test/_search?q=java

PUT test4
{
  "settings": {
      "index":{
        "number_of_shards": 3,
        "number_of_replicas": 0
      }
  },"mappings": {
    "books":{
      "properties": {
        "title":{"type":"text"},
        "name":{"type":"text","index":false},
        "price":{"type":"double"},
        "number":{"type":"object",
              "dynamic":true}
      }
    }
  }
}

GET test4/_mapping

PUT test4/books/1
{
  "name":"xiaou",
  "number":{"1":1,"2":3},
  "price":56.55,
  "title":"this java"
}

GET /test4/books/1

# 数据准备
PUT /lib3
{
    "settings":{
    "number_of_shards" : 3,
    "number_of_replicas" : 0
    },
     "mappings":{
      "user":{
        "properties":{
            "name": {"type":"text",
                     "analyzer": "ik_max_word"},
            "address": {"type":"text",
                      "analyzer": "ik_max_word"},
            "age": {"type":"integer"},
            "desc": {"type":"text",
                     "analyzer": "ik_max_word"},
            "birthday": {"type":"date"}
        }
      }
     }
}

PUT /lib3/user/1
{"name":"小美",
  "address":"浙江桐乡",
  "age":18,
  "desc":"喜欢唱歌,吃饭,睡觉",
  "birthday":"1999-03-05"}
  
PUT /lib3/user/2
{"name":"小u",
  "address":"浙江杭州",
  "age": 25,
  "desc":"喜欢唱歌,睡觉",
  "birthday":"1999-03-05"}

PUT /lib3/user/3
{"name":"小啦",
  "address":"浙江下沙",
  "age":16,
  "desc":"喜欢玩游戏,睡觉",
  "birthday":"1999-03-05"}
  
PUT /lib3/user/4
{"name":"小打",
  "address":"浙江呜呜",
  "age":12,
  "desc":"喜欢玩游戏",
  "birthday":"2000-03-05"}

# term查询
GET /lib3/user/_search
{
  "query": {
    "term": {"name":"小美"}
  }
}

# terms查询
GET /lib3/user/_search
{
   "query": {
     "terms": {"desc":["吃饭","游戏"]}
   }
}

# 分页
GET /lib3/user/_search
{
   "from": 0,
   "size": 2, 
   "query": {
     "terms": {"desc":["吃饭","游戏"]}
   }
} 

# 返回版本号
GET /lib3/user/_search
{
   "from": 0,
   "size": 2,
   "version": true, 
   "query": {
     "terms": {"desc":["吃饭","游戏"]}
   }
} 

# match查询
GET /lib3/user/_search
{
  "query": {
      "match": {
        "address": "拉你桐乡"
      }
  }
}

# 查询所有文档
GET /lib3/user/_search
{
  "query": {
      "match_all": {}
  }
}

# 指定多个字段
GET lib3/user/_search
{
  "query": {
      "multi_match": {
        "query": "游戏桐乡",
        "fields": ["address","desc"]
      }
  }
}

# 短语匹配查询
GET  lib3/user/_search
{
  "query": {
    "match_phrase": {
      "desc": "玩游戏"
    }
  }
}

# 指定返回的字段
GET  lib3/user/_search
{
  "_source": ["address","desc"], 
  "query": {
    "match_phrase": {
      "desc": "玩游戏"
    }
  }
}

# 控制加载的字段
GET /lib3/user/_search
{
    "query": {
        "match_all": {}
    },
    "_source": {
        "includes": ["name"],
        "excludes": ["age"]
    }
}

# 通配符
GET /lib3/user/_search
{
  "query": {
        "match_all": {}
    },
  "_source": {
        "includes": ["n*"],
        "excludes": ["a?e"]
  }
}

# sort
GET /lib3/user/_search
{
  "query": {
        "match_all": {}
    },
  "sort": [
    {
      "age": {"order": "asc"}
    }
  ]
}

# 前缀匹配查询
GET /lib3/user/_search
{
  "query": {
    "match_phrase_prefix": {
      "name": "小"
    }
  }
}

# 范围查询
GET /lib3/user/_search
{
    "query": {
      "range": {
        "birthday": {
          "gte": "1999-01-01",
          "lte": "2000-01-01"
        }
      }
    }
}

# wildcard查询
GET /lib3/user/_search
{
  "query": {
    "wildcard": {
      "name": {
        "value": "*u"
      }
    }
  }
}

# fuzzy实现模糊查询
GET /lib3/user/_search
{
    "query": {
        "fuzzy": {"name":"u"}
    }
}

# 高亮
GET /lib3/user/_search
{
  "query": {
      "match": {
        "desc": "唱歌"
      }
  },
  "highlight": {
      "fields": {
        "desc": {}  
      }
  }
}

POST /lib4/items/_bulk
{"index": {"_id": 1}}
{"price": 40,"itemID": "ID100123"}
{"index": {"_id": 2}}
{"price": 50,"itemID": "ID100124"}
{"index": {"_id": 3}}
{"price": 25,"itemID": "ID100124"}
{"index": {"_id": 4}}
{"price": 30,"itemID": "ID100125"}
{"index": {"_id": 5}}
{"price": null,"itemID": "ID100127"}

GET lib4/items/_search
{
  "post_filter": {
    "term": {
      "price": "40"
    }
  }
}

GET lib4/items/_search
{
  "post_filter": {
    "terms": {
      "price":[25,40]
    }
  }
}

GET lib4/items/_search
{
  "post_filter": {
    "term": {
      "itemID": "id100123"
    }
  }
} 

# 组合过滤查询
GET lib4/items/_search
{
  "post_filter": {
    "bool": {
      "should":[
          {"term":{"price":25}},
          {"term":{"itemID":"id100123"}}
      ],
      "must_not":{"term":{"price":30}}
    }
  }
}

GET lib4/items/_search
{
  "post_filter": {
    "bool": {
      "should":[{"term":{"price":25}}],
      "must_not":{"term":{"price":30}}
    }
  }
}

# 嵌套使用bool
GET lib4/items/_search
{
    "post_filter": {
      "bool": {
        "should":[{"term":{"itemID":"id100123"}},
                {"bool":{
                  "must":[
                      {"term":{"itemID":"id100124"}},
                      {"term":{"price":40}}
                    ]
                }
              }
            ]
      }
    }
}

# 范围过滤
GET lib4/items/_search
{
  "post_filter": {
    "range": {
      "price": {
        "gte": 40,
        "lt": 50
      }
    }
  }
}

# 过滤非空
GET lib4/items/_search
{
  "query": {
    "bool": {
      "filter": {
        "exists": {
          "field": "price"
        }
      }
    }
  }
}

# sum
GET lib4/items/_search
{
  "size": 0,
  "aggs": {
    "price_sum": {
      "sum": {
        "field": "price"
      }
    }
  }
}

# avg
GET lib4/items/_search
{
  "size": 0,
  "aggs": {
    "price_avg": {
      "avg": {
        "field": "price"
      }
    }
  }
}

#max
GET lib4/items/_search
{
  "size": 0,
  "aggs": {
    "price_max": {
      "max": {
        "field": "price"
      }
    }
  }
}

#min
GET lib4/items/_search
{
  "size": 0,
  "aggs": {
    "price_min": {
      "min": {
        "field": "price"
      }
    }
  }
}

# cardinality:求基数
GET lib4/items/_search
{
  "size": 0,
  "aggs": {
    "price_card": {
      "cardinality": {
        "field": "price"
      }
    }
  }
}

# 分组
GET lib4/items/_search
{
  "size": 0,
  "aggs":{
    "price_group":{
      "terms": {
        "field": "price"
      }
    }
  }
}

#
GET lib3/user/_search
{
  "query": {
    "match": {
      "desc": "唱歌"
    }
  }, 
  "size": 0
  , "aggs": {
    "avg_group_by": {
      "terms": {
        "field": "age",
        "order": {"avg_of_age": "desc"}
      },
      "aggs": {
        "avg_of_age": {
          "avg": {
            "field": "age"
          }
        }
      }
    }
  }
}

# 复合查询
GET lib3/user/_search
{
 "query": {
   "bool": {
     "must": [
       {"match": {
         "desc": "唱歌"
       }}
     ],
     "must_not": [
       {"match": {
         "desc": "吃饭"
       }}
     ],
     "should": [
       {"match": {
         "address": "杭州"
       }},
       {"range": {
         "birthday": {
           "gte": "1999-03-05",
           "lte": "2000-03-05"
         }
       }}
     ]
    } 
  }
}

GET lib3/user/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {
          "desc": "唱歌"
        }}
      ],
      "filter": {
        "bool": {
            "must":{
            "range": {
               "birthday": {
               "gte": "1999-03-05",
               "lt": "2000-03-05"
             }
            }
          }
        }
      }
    }
  }
}

 

posted @ 2018-09-10 22:46  Masukotto&xiaou  阅读(683)  评论(0编辑  收藏  举报