Elasticsearch小结

  1. 基本概念类型(type)在7.x以后的版本被移除
  2. API示例
    # 查询索引
    GET /_cat/indices?v
    
    PUT /shopping
    
    GET /shopping
    
    DELETE /shopping
    
    # 创建(不限次数,都是created)
    POST /shopping/_doc
    {
        "title":"小米手机",
        "category":"小米",
        "images":"http://www.gulixueyuan.com/xm.jpg",
        "price":3999.00
    }
    
    # 创建(只能创建一次)
    PUT /shopping/_create/1001
    {
        "name":"小米手机",
        "sex":"男的",
        "tel":"111111"
    }
    
    # 创建(不限次数,首次是created,之后都是updated)
    POST /shopping/_doc/1001
    {
        "title":"小米手机",
        "category":"小米",
        "images":"http://www.gulixueyuan.com/xm.jpg",
        "price":3999.00
    }
    
    # 全量更新
    PUT /shopping/_doc/1001
    {
        "title":"小米手机",
        "category":"小米",
        "images":"http://www.gulixueyuan.com/xm.jpg",
        "price":3999.00
    }
    
    # 局部更新
    POST /shopping/_update/1001
    {
      "doc": {
        "sex": "男的"
      }
        
    }
    
    GET /shopping/_doc/1001
    
    GET /shopping/_search
    
    # 条件查询(中文容易乱码)
    GET /shopping/_search?q=category:华为
    
    # 条件查询(请求body体,推荐)
    GET /shopping/_search
    {
      "query": {
        "match": {
          "sex": "男的"
        }
      }
    }
    
    # 分页查询
    GET /shopping/_search
    {
      "query": {
        "match_all": {
    
        }
      },
      "from": 0,
      "size": 2
    }
    
    # 分页查询(指定字段)
    GET /shopping/_search
    {
      "query": {
        "match_all": {
    
        }
      },
      "from": 0,
      "size": 2,
      "_source": "title"
    }
    
    # 分页查询(排序)
    GET /shopping/_search
    {
      "query": {
        "match_all": {
    
        }
      },
      "from": 0,
      "size": 2,
      "_source": "title",
      "sort": {
        "price": {
          "order": "desc"
        }
      }
    }
    
    # 多条件查询(must类似于and)
    GET /shopping/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "category": "华为"
              }
            },
            {
              "match": {
                "title": "小米"
              }
            }
          ]
        }
      }
    }
    
    # 多条件查询(should类似于or)
    GET /shopping/_search
    {
      "query": {
        "bool": {
          "should": [
            {
              "match": {
                "category": "华为"
              }
            },
            {
              "match": {
                "title": "小米"
              }
            }
          ]
        }
      }
    }
    
    # 多条件查询(filter范围查询时用)
    GET /shopping/_search
    {
      "query": {
        "bool": {
          "should": [
            {
              "match": {
                "category": "华为"
              }
            },
            {
              "match": {
                "title": "小米"
              }
            }
          ],
          "filter": {
            "range": {
              "price": {
                "gte": 3000
              }
            }
          }
        }
      }
    }
    
    # 条件查询(精准查询)
    GET /shopping/_search
    {
      "query": {
        "match_phrase": {
          "category": "小米"
        }
      }
    }
    
    # 条件查询(高亮显示)
    GET /shopping/_search
    {
      "query": {
        "match_phrase": {
          "category": "小米"
        }
      },
      "highlight": {
        "fields": {
          "category": {}
        }
      }
    }
    
    # 分组查询
    GET /shopping/_search
    {
      "aggs": { // 聚合操作
        "category": { // 名称,随意起名
          "terms": { // 分组
            "field": "cid3" // 分组字段
          }
        }
      }
    }
    
    # 平均值查询
    GET /shopping/_search
    {
      "aggs": {
        "price_avg": { // 名称,随意起名,
          "avg": { // 平均值
            "field": "price" // 分组字段
          }
        }
      }
    }
    
    # 创建映射
    PUT /shopping/_mapping
    {
      "properties": {
        "name": {
          "type": "text"
        },
        "sex": {
          "type": "keyword"
        },
        "tel": {
          "type": "keyword",
          "index": false
        }
      }
    }
    
    # 获取映射
    GET /shopping/_mapping
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值