Elasticsearch(ES)基础查询语法的使用

1. Match Query (全文检索查询)
  • 用于执行全文检索,适合搜索文本字段。

    {
    “query”: {
    “match”: {
    “field”: “value”
    }
    }
    }

  • match_phrase:精确匹配短语,适合用于短语搜索。

    {
    “query”: {
    “match_phrase”: {
    “field”: “text”
    }
    }
    }

2. Term Query (精确匹配查询)
  • 用于对某个字段的精确值进行查询,常用于不分词的字段(如ID、标签、关键词等)。

    {
    “query”: {
    “term”: {
    “field”: “value”
    }
    }
    }

3. Range Query (范围查询)
  • 用于查询数值、日期、时间等范围内的数据。

    {
    “query”: {
    “range”: {
    “field”: {
    “gte”: 10, // 大于等于
    “lte”: 100, // 小于等于
    “gt”: 10, // 大于
    “lt”: 100 // 小于
    }
    }
    }
    }

4. Bool Query (布尔查询)
  • 用于将多个查询组合在一起,可以使用 mustshouldmust_not 等操作符。

    {
    “query”: {
    “bool”: {
    “must”: [
    { “match”: { “field1”: “value1” } },
    { “match”: { “field2”: “value2” } }
    ],
    “filter”: [
    { “range”: { “price”: { “gte”: 50 } } }
    ],
    “should”: [
    { “match”: { “field3”: “value3” } }
    ],
    “must_not”: [
    { “term”: { “field4”: “value4” } }
    ]
    }
    }
    }

5. Prefix Query (前缀匹配查询)
  • 用于查询字段值的前缀匹配,常用于搜索补全或模糊搜索。

    {
    “query”: {
    “prefix”: {
    “field”: “prefix_value”
    }
    }
    }

6. Wildcard Query (通配符查询)
  • 支持*(匹配任意字符)和?(匹配单个字符)的通配符查询。

    {
    “query”: {
    “wildcard”: {
    “field”: “prefix*”
    }
    }
    }

7. Fuzzy Query (模糊查询)
  • 用于查询与某个值相似的字段,常用于容忍拼写错误的场景。

    {
    “query”: {
    “fuzzy”: {
    “field”: {
    “value”: “exampl”
    }
    }
    }
    }

8. Regexp Query (正则表达式查询)
  • 使用正则表达式进行查询。

    {
    “query”: {
    “regexp”: {
    “field”: “pattern.*”
    }
    }
    }

9. Match All Query (匹配所有文档)
  • 用于返回索引中的所有文档。

    {
    “query”: {
    “match_all”: {}
    }
    }

10. Term Range Query (字段范围查询)
  • 用于查询一个字段值在特定范围内的文档,类似 range query,但 term 查询是基于精确值的。

    {
    “query”: {
    “range”: {
    “field”: {
    “gte”: 5,
    “lte”: 10
    }
    }
    }
    }

11. Exists Query (字段存在查询)
  • 用于查询某个字段是否存在。

    {
    “query”: {
    “exists”: {
    “field”: “field_name”
    }
    }
    }

12. Geo Queries (地理位置查询)
  • Elasticsearch 支持基于地理位置的查询,如基于位置的范围查询或距离查询。

  • Geo Distance Query

    {
    “query”: {
    “bool”: {
    “filter”: {
    “geo_distance”: {
    “distance”: “200km”,
    “location”: {
    “lat”: 40.73,
    “lon”: -74.1
    }
    }
    }
    }
    }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值