You know, for search


You know, for search

# 测试ES是否启动成功

GET ?pretty

# 计算集群中文档的数量

GET /_count?pretty
{
  "query": {
    "match_all": {}
  }
}

# 创建索引  
# 有则追加数据,无索引则默认创建
# 索引名/类型名称/id

PUT /megacorp/employee/1
{
  "first_name" : "John",
  "last_name" : "Smith",
  "age" : 25,
  "about" : "I love to go rock climbing",
  "interests" : ["sports", "music"]
}
PUT /megacorp/employee/2
{
  "first_name" : "Jane",
  "last_name" : "Smith",
  "age" : 32,
  "about" : "I like to collect rock albums",
  "interests" : ["music"]
}
PUT /megacorp/employee/3
{
  "first_name" : "Douglas",
  "last_name" : "Fir",
  "age" : 35,
  "about" : "I like to build cabinets",
  "interests" : ["forestry"]
}

# 检索文档
# _source属性是原始json文档

GET /megacorp/employee/1
GET /megacorp/employee/2
GET /megacorp/employee/3

# 更新文档
# 只需再次PUT就可以
# 注意,完全覆盖更新,包括减少字段

PUT /megacorp/employee/3
{
  "interests" : ["forestry", "programming1"]
}

# 删除文档

DELETE /megacorp/employee/3

# 检查文档是否存在

HEAD /megacorp/employee/3

# 搜索所有雇员信息
# 返回的结果在hits中

GET /megacorp/employee/_search

# 使用query-string进行轻量化搜索

GET /megacorp/employee/_search?q=last_name:Smith

# 使用查询表达式搜索
# 查询类型 match

GET /megacorp/employee/_search
{
  "query": {
    "match": {
      "last_name": "Smith"
    }
  }
}

# 使用更复杂的搜索
# 查询Smith员工,年龄要大于30岁的

GET /megacorp/employee/_search
{
  "query": {
    "bool": {
      "must": {
        "match" : {
          "last_name" : "Smith"
        }
      } ,
      "filter": {
        "range": {
          "age": {
            "gt": 30
          }
        }
      }
    }
  }
}

# 全文搜索
# match基于词搜索

GET /megacorp/employee/_search
{
  "query": {
    "match": {
      "about": "rock climbing"
    }
  }
}


# match_phrase基于短语搜索

GET /megacorp/employee/_search
{
  "query": {
    "match_phrase": {
      "about": "rock climbing"
    }
  }
}

#高亮搜索

GET /megacorp/employee/_search
{
  "query": {
    "match": {
      "about": "rock climbing"
    }
  },
  "highlight": {
    "fields": {
      "about": {}
    }
  }
}

# 分析
# 最受欢迎的爱好

GET /megacorp/employee/_search
{
  "aggs": {
    "all_interests": {
      "terms": {
        "field": "interests.keyword"
      }
    }
  }
}


# Smith中最受欢迎的爱好

GET /megacorp/employee/_search
{
  "query": {
    "match": {
      "last_name": "Smith"
    }
  },
  "aggs": {
    "all_interests": {
      "terms": {
        "field": "interests.keyword"
      }
    }
  }
}


# 汇总

GET /megacorp/employee/_search
{
  "aggs": {
    "all_interests": {
      "terms": {
        "field": "interests.keyword"
      },
      "aggs": {
        "avg_age": {
          "avg": {
            "field": "age"
          }
        }
      }
    }
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无绪听雨眠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值