es查询语法

查询关键词的含义:

  1. match: 用于进行全文搜索,分析查询文本并与倒排索引中的词项进行匹配。

  2. term: 精确匹配,适用于非分析字段,如 keyword 类型。用于查找字段值完全相等的文档。

  3. bool : 组合多个查询条件。可以使用 must(必须满足)、should(可选满足)和 must_not(不能满足)来构建复杂查询。

  4. range: 用于查找字段值在某个范围内的文档。例如,可以查找年龄大于某个值的用户。

  5. wildcard : 使用通配符(如 *?)进行模糊匹配。适用于匹配包含特定模式的字段值。

  6. fuzzy: 模糊匹配,允许一定的拼写错误或相似度。通常用于文本字段。

  7. aggregations: 用于统计和分析数据,比如计数、求和、平均等。适用于对结果集进行聚合。

  8. size: 定义返回结果的文档数量。

  9. from: 用于分页,定义从结果集的哪个位置开始返回文档。

  10. sort: 用于对结果进行排序,可以根据一个或多个字段进行升序或降序排序。

  11. should 是用于 bool 查询的一个子句,它允许你指定可选的匹配条件。使用 should 的查询具有以下特点:

should 特点

  1. 可选匹配 :在 should 中列出的条件不是必需的,只要至少满足一个条件,文档就会被包含在结果中。

  2. 加权 :如果一个文档匹配多个 should 条件,它的评分会更高。这可以帮助你根据相关性对结果进行排序。

  3. 组合查询 :可以与 mustmust_not 一起使用,以创建复杂的查询逻辑。

  1. 简单查询

查找所有文档:

json

GET /users/_search
{
"query": {
"match_all": {}
}
}

  1. 匹配查询

查找名称为 "Alice" 的用户:

json

GET /users/_search
{
"query": {
"match": {
"name": "Alice"
}
}
}

  1. 布尔查询

查找年龄大于 25 且兴趣包含 "reading" 的用户:

json

GET /users/_search
{
"query": {
"bool": {
"must": { "range": { "age": { "gt": 25 } } }, { "match": { "interests": "reading" } }
}
}
}

  1. 过滤查询

查找居住在纽约的用户:

json

GET /users/_search
{
"query": {
"term": {
"address.city": "New York"
}
}
}

  1. 聚合查询

统计不同兴趣的用户数量:

json

GET /users/_search
{
"size": 0,
"aggs": {
"interests_count": {
"terms": {
"field": "interests"
}
}
}
}

  1. 组合查询

查找年龄在 20 到 40 之间,且居住在纽约的用户:

json

GET /users/_search
{
"query": {
"bool": {
"must": { "range": { "age": { "gte": 20, "lte": 40 } } }, { "term": { "address.city": "New York" } }
}
}
}

相关推荐
搞科研的小刘选手10 小时前
【经管方向EI会议】第七届经济管理与大数据应用国际学术会议(ICEMBDA2026)
大数据·区块链·可视化·管理·供应链·经济·消费者行为
久菜盒子工作室10 小时前
港股创新药趋势走坏了吗
大数据·人工智能
出海小龙10 小时前
联盟营销实战技能体系:从市场研究到数据优化的完整盈利框架
大数据·前端·人工智能
无忧智库11 小时前
某能源集团多Agent协同的电力交易策略优化与实时调度决策系统建设方案(WORD)
大数据·人工智能·自动化
geneculture11 小时前
从“巴别塔”到“耶路撒冷”:融智学应对AI时代治理困境的系统方案
大数据·人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·人际间性·人机间性
暴躁小师兄数据学院11 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第五章):条件判断与流程控制
大数据·人工智能·python·学习
计算机安禾11 小时前
【算法分析与设计】第20篇:图论中的NP困难问题与近似策略
大数据·人工智能·算法
云边云科技_云网融合12 小时前
企业级网络智能运维体系构建:从被动响应到主动预判
大数据·网络·人工智能
humors22112 小时前
构建个人化的阅读方式:基于多维度的选择分析
大数据·程序人生
枫叶林FYL12 小时前
Explore with Long-term Memory:基于多模态大语言模型与强化学习的具身探索框架
大数据·人工智能·语言模型