ElasticSearch 基础操作

在Kibana 开发工具下操作
使用url body 传参使用json 数据格式

# 新增索引
PUT shopping

# 获取索引信息
GET shopping

# 获取所有索引
GET _cat/indices?v

# 删除索引
DELETE shopping

# 给shopping添加内容 文档创建
POST shopping/_doc
{
  "title":"小米手机",
  "category":"小米",
  "images":"http://www.gulixueyuan.com/xm.jpg",
  "price":3999.99
  
}

# 文档创建 自定义id(主键) PUT 请求也可创建不过是幂等性的
POST shopping/_doc/1001
{
  "title":"小米手机",
  "category":"小米",
  "images":"http://www.gulixueyuan.com/xm.jpg",
  "price":3999.99
  
}


# 文档查询 主键查询 _id
GET shopping/_doc/1001
# 查询没有的主键
GET shopping/_doc/1002
# 查询索引下所有数据
GET shopping/_search


# 文档修改
# 全量修改 因为是幂等性的所以可以使用PUT
PUT shopping/_doc/1001
{
  "title":"小米手机",
  "category":"小米",
  "images":"http://www.gulixueyuan.com/xm.jpg",
  "price":3999.00
  
}
# 局部修改
POST shopping/_update/1001
{
  "doc":{
    "title":"华为"
  }
}

# 删除
DELETE shopping/_doc/1001

# 条件查询
# 请求地址查询
GET shopping/_search?q=category:小米
# 请求体查询
GET shopping/_search
{
  "query": {
    "match": {
      "category":"小米"
    }
  }
}
# 全量查询
GET shopping/_search
{
  "query": {
    "match_all": {}
  }
}
# 分页查询
GET shopping/_search
{
  "query": {
    "match_all": {}
  },
  "from": 2, 
  "size": 2 
}


# 查询控制查询字段
GET shopping/_search
{
  "query": {
    "match_all": {}
  },
  "from": 2, 
  "size": 2,
  "_source": ["title","price"]
}


# 查询排序
GET shopping/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0, 
  "size": 10,
  "_source": ["title","price"],
  "sort": [
    {
      "price": {
        "order": "desc"
      }
    }
  ]
}
GET shopping/_search
{
  "query": {
    "match_all": {}
  },
  "from": 0, 
  "size": 10,
  "_source": ["title","price"],
  "sort": [
    {
      "price": {
        "order": "asc"
      }
    }
  ]
}


# 多条件查询
# and 条件
GET shopping/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "category": "小米"
          }
        },
        {
          "match": {
            "price": 3999.00
          }
        }
      ]
    }
  },
  "from": 0, 
  "size": 10,
  "_source": ["title","price"],
  "sort": [
    {
      "price": {
        "order": "asc"
      }
    }
  ]
}
# or 条件
GET shopping/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "category": "小米"
          }
        },
        {
          "match": {
            "price": 3999.00
          }
        }
      ]
    }
  }
}


# 范围 条件 gt 大于 gte 大于等于 lt 小于 lte 小于等于
GET shopping/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "category": "小米"
          }
        },
        {
          "match": {
            "price": 3999.00
          }
        }
      ],
      "filter": {
        "range": {
          "price": {
            "gte": 3999.5
          }
        }
      }
    }
  }
}

# query match 是倒排索引 分词 全文检索  
# 想要完全匹配 使用 match_phrase
GET shopping/_search
{
  "query": {
    "match_phrase": {
      "category": "小米"
    }
  }
}

GET shopping/_search
{
  "query": {
    "match_phrase": {
      "category": "小"
    }
  }
}

GET shopping/_search
{
  "query": {
    "match_phrase": {
      "category": "米"
    }
  }
}

GET shopping/_search
{
  "query": {
    "match_phrase": {
      "category": "小华"
    }
  }
}

# 高亮显示

GET shopping/_search
{
  "query": {
    "match_phrase": {
      "category": "小"
    }
  },
  "highlight": {
    "fields": {
      "category": {}
    }
  }
}


# 聚合查询
GET shopping/_search
{
  "aggs": {
    "price_group": {
        "terms": {
          "field": "price"
      }
    }
  },
  "size":0
}


GET shopping/_search
{
  "aggs": {
    "price_avg": {
        "avg": {
          "field": "price"
      }
    }
  },
  "size":0
}

上一篇:Mysql笔记


下一篇:es5中新增的数组方法