elastic查询语句

按from为test条件进行查询

GET test/_doc/_search?q=from:test

与上面查询相同

GET test/_doc/_search
{
  "query": {
    "math": {
      "from":"test"
    }
  }
} 

模糊查询

#查所有,没有条件限制
GET test/_doc/_search
{
  "query": {
    "math_all": {}
  }
}
#短语查询query为关键词,后面跟查询条件
GET test/_doc/_search
{
  "query": {
    "math_phrase": {
      "title": {
        "query": "中国"
      }
    }
  }
}
#中国和人口这两个词之间最小的距离2为值,slop为关键词,值为距离单位
GET test/_doc/_search
{
  "query": {
    "math_phrase": {
      "title": {
        "query": "中国人口",
        "slop": 2
      }
    }
  }
}
#分词查询单词包含部分desc,跟查询条件
GET test/_doc/_search
{
  "query": {
    "math_phrase_prefix": {
      "desc": "bea"
    }
  }    
}

多条件查询之bool

#must是和处理并且的意思
GET t3/_doc/_search
{
  "query": {
    "bool": { 
      "must": [
        {
          "match": {
            "title": "beautiful"
          }
        },
        {
          "match": {
            "desc": "beautiful"
          }
        }
      ]
    }
  }
}
#should是或者的意思
GET t3/_doc/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "title": "beautiful"
          }
        },
        {
          "match": {
            "desc": "beautiful"
          }
        }
      ]
    }
  }
}
#must_not条件都不是取反
GET lqz/_doc/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "from": "gu"
          }
        },
        {
          "match": {
            "tags": "可爱"
          }
        },
        {
          "match": {
            "age": 18
          }
        }
      ]
    }
  }
}
#filter跟bool为一组,range为关键参数,大于gt小于lt大于等于gte小于等于lte范围内是大于gte小于lte
GET lqz/_doc/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "from": "gu"
          }
        }
      ],
      "filter": {
        "range": {
          "age": {
            "lt": 30
          }
        }
      }
    }
  }
}
#match查的短语会分词
GET w10/_doc/_search
{
  "query": {
    "match": {
      "t1": "Beautiful girl!"
    }
  }
}
#term查的不会分词,精确匹配,比如数字,日期,布尔值或 not_analyzed(未经分析的文本数据类型)
GET w10/_doc/_search
{
  "query": {
    "term": {
     "t1": "girl"
    }
  }
}
#terms允许指定多个匹配条件
GET w10/_doc/_search
{
  "query": {
    "terms": {
      "t1": ["beautiful", "sexy"]
    }
  }
}
#range过滤是照指定范围查找一批数据
{
  "range": {
      "age": {
          "gte":  20,
          "lt":   30
      }
   }
}

排序,关键词sort(不是所有字段都支持排序,只有数字类型,字符串不支持)

#降序order
GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from": "gu"
    }
  },
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}
#升序
GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from": "gu"
    }
  },
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }
  ]
}
#全部查询match_all
GET lqz/_doc/_search
{
  "query": {
    "match_all": {
    }
  },
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }
  ]
}
#_source查询结果过滤,query同级。指定某几个字段保留例保留["name","age"]
GET lqz/_doc/_search
{
  "query": {
    "match_all": {
      }
  },
  "_source":["name","age"]
}

分页查询,from size参数 两页两条从第二条开始,取两条

GET lqz/_doc/_search
{
  "query": {
    "match_all": {}
  },
  "from": 2,
  "size": 2
}

高亮显示highlight关键词query同级

GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from": "gu"
    }
  },
  "highlight": {
    "pre_tags": "<b class='key' style='color:red'>",
    "post_tags": "</b>",
    "fields": {
      "from": {}
    }
  }
}

avg平均写法,aggs为固定写法my_avg为重命名,avg函数,以age字段计算

GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from": "gu"
    }
  },
  "aggs": {
    "my_avg": {
      "avg": {
        "field": "age"
      }
    }
  },
  "_source": ["name", "age"]
}

max最大写法,aggs为固定写法my_max为重命名,max函数,以age字段计算

GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from": "gu"
    }
  },
  "aggs": {
    "my_max": {
      "max": {
        "field": "age"
      }
    }
  },
  "_source": ["name", "age"]
}

min最小写法,aggs为固定写法my_min为重命名,min函数,以age字段计算

GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from": "gu"
    }
  },
  "aggs": {
    "my_min": {
      "min": {
        "field": "age"
      }
    }
  },
  "_source": ["name", "age"]
}

sum求和写法,sum为固定写法my_sum为重命名,sum函数,以age字段计算

GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from": "gu"
    }
  },
  "aggs": {
    "my_sum": {
      "sum": {
        "field": "age"
      }
    }
  },
  "_source": ["name", "age"]
}

分组aggs固定写法,age_group为重命名,range为按field类型就行分类,from从…开始,to从…结束

GET lqz/_doc/_search
{
  "size": 0, #0为不展示数据结果,只展示数据分类内容,1为展示一条1以上以此类推
  "query": {
    "match_all": {}
  },
  "aggs": {
    "age_group": {
      "range": {
        "field": "age",
        "ranges": [
          {
            "from": 15,
            "to": 20
          },
          {
            "from": 20,
            "to": 25
          },
          {
            "from": 25,
            "to": 30
          }
        ]
      }
    }
  }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值