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岁的
扫描二维码关注公众号,回复:
12449401 查看本文章

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"
}
}
}
}
}
}