Elasticsearch8 常用查询

返回指定字段

xxxevent中的一个字段

GET /news/_search
{
  "query": {"match_all": {}},
  "_source": [
    "event.xxx"]
}

短语查询

_source excludes 排除返回字段,sort时间倒序排序,from size分页

GET /news/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match_phrase": {
            "title": "xxx"
          }
        },
        {
          "match_phrase": {
            "content": "xxx"
          }
        }
      ]
    }
  },
  "_source": {
    "excludes": [
      "content"
    ]
  },
  "sort": [
    {
      "news_time": {
        "order": "desc"
      }
    }
  ], 
  "from": 0,
  "size": 20
}

精确查询

单字段单值

GET /news/_search
{
  "query": {
    "constant_score": {
      "filter": {
        "term": {
          "tags.keyword": "xxx"
        }
      }
    }
  }
}

单字段多值(OR关系)

GET /news/_search
{
  "query": {
    "constant_score": {
      "filter": {
        "terms": {
          "tags.keyword": [
            "xxx",
            "yyy"
          ]
        }
      }
    }
  }
}

多字段OR

GET /news/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "tags.keyword": "xxx"
          }
        },
        {
          "term": {
            "category.keyword": "yyy"
          }
        }
      ]
    }
  }
}

多字段AND

GET /news/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "tags.keyword": "xxx"
          }
        },
        {
          "term": {
            "category.keyword": "yyy"
          }
        }
      ]
    }
  }
}

排除指定ID

GET /news/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "ids": {
            "values": [
              "f2t6cIEB1CYi8x_aKrHr",
              "gmuAcIEB1CYi8x_a9rFL"
            ]
          }
        }
      ],
      "should": [
        {
          "match": {
            "content": "xxx"
          }
        }
      ]
    }
  }
}

指定id

GET /news/_search
{
  "query": {
    "ids": {
      "values": [
              "l8gXzIMBXWb_zEUE3mWz",
              "g0J91oEBIb0moaJK1lY1",
              "dUJ91oEBIb0moaJKv1b4"
            ]
    }
  }
}

must中嵌套should

title中必须同时包含xxxyyy

GET /news/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "should": [
              {"match_phrase": {"title": "xxx"}}
            ]
          }
        },
        {
          "bool": {
            "should": [
              {"match_phrase": {"title": "yyy"}}
            ]
          }
        }
      ]
    }
  }
}

排序

先按照评分排序,再按照时间排序

GET /news/_search
"sort": [
    {
      "_score": {
        "order": "desc"
      }
    },
    {
      "news_time": {
        "order": "desc"
      }
    }
  ]

局部更新

doc是固定写法,labels是需要更新的字段

POST /news/_update/tEJz1oEBIb0moaJKOlLv
{
  "doc": {
    "labels": [
      "xxx",
      "yyy"
    ]
  }
}

新增并替换字段

POST /news/_update_by_query
{
    "script" : {
        "source": "ctx._source.describe = ctx._source.abstract",
        "lang": "painless"
    }
}

删除字段

POST /news/_update_by_query
{
    "script" : {
        "source": "ctx._source.remove('abstract')",
        "lang": "painless"
    }
}

按照_id排序

PUT _cluster/settings
{
  "persistent": {
    "indices.id_field_data.enabled": true
  }
}

elasticdump使用

elasticdump --input=http://xxx:9200/news --output=news.json --type=data --searchBody='{"query": {"match_all": {}}}' --fileSize=150mb --limit=1000 --sourceOnly

分组统计

GET /news/_search
{
  "aggs": {
    "group_by_tags": {
      "terms": {
        "field": "origin.keyword",
        "size": 10000
      }
    },
    "group_count":{
      "stats_bucket": {
        "buckets_path": "group_by_tags>_count"
      }
    }
  },
  "size": 0
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

llc的足迹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值