【ElasticSearch】ElasticSearch常用查询api集合(一)

这篇具有很好参考价值的文章主要介绍了【ElasticSearch】ElasticSearch常用查询api集合(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


【ElasticSearch】ElasticSearch常用查询api集合(一)

前言

  • 本文为es常见DSL搜索入门帖子
  • 开始之前先贴个对应关系,方便各位理解
  • 在es7+的版本中,是没有类型的概念的,所以,添加数据直接在索引中添加;
    【ElasticSearch】ElasticSearch常用查询api集合(一)

⭐请求es地址均为localhost:9200/{索引}/_search,为了编写方便些,在下面的例子中会直接写请求体;

⭐搜索所有文档

{
    "query": {
        "match_all": {}
    },
    "size": 1 // size关键词为返回数据条数,不填写默认为10条
}

⭐根据指定字段倒序排列

{
    "query": {
        "match_all": {}
    },
    "sort": [
        {
            "patient_age": {
                "order": "desc" // 根据用户年龄倒序排列
            }
        }
    ],
    "size": 10, // size 与 from搭配起到分页的作用
    "from": 1
}

⭐查询返回指定字段

{
    "query": {
        "match_all": {}
    },
    "_source": ["bill_no", "patient_age"], // 只返回订单号和用户年龄
    "sort": [
        {
            "patient_age": {
                "order": "desc"
            }
        }
    ],
    "size": 10,
    "from": 1
}

⭐范围查询(range)

{
    "query": {
        "range": {
            "patient_age": { // 查询年龄大于1岁 小于10岁的用户
                "gte": 1,
                "lte": 10
            }
        }
    }
}

⭐前缀查询(prefix)

{
    "query": {
        "prefix": {
            "patient_name": {
                "value": "李" // 查询姓李的用户
            }
        }
    }
}

⭐组合查询(bool)

  • bool 关键字: 用来组合多个条件实现复杂查询表达式
  • ​ must: 相当于 &&
  • should: 相当于 ||
  • must_not: 相当于 !=

以下表达式的意思为:

  1. 查询用户年龄(patient_age)在0-18岁之间
  2. 且不姓李的用户信息
  3. 并且按照用户年龄字段倒序排列
  4. 并且返回指定字段的用户信息
{
    "query": {
        "bool": {
            "must": [
                {
                    "range": {
                        "patient_age": {
                            "gte": 0,
                            "lte": 18
                        }
                    }
                }
            ],
            "must_not": [
                {
                    "prefix": {
                        "patient_name": {
                            "value": "李"
                        }
                    }
                }
            ]
        }
    },
    "sort": [
        {
            "patient_age": {
                "order": "desc"
            }
        }
    ],
    "_source": [
        "bill_no",
        "patient_name",
        "patient_age"
    ]
}

⭐高亮查询(term、highlight)

  • term 查询被用于精确值匹配,这些精确值可能是数字、时间、布尔或者那些 not_analyzed 的字符串;
{
    "query": {
        "term": {
            "patient_name": {
                "value": "李" 
            }
        }
    },
    "highlight": {
        "fields": {
            "*": {}
        }
    }
}

在返回值中,符合条件的数据会被highlight标签包裹,并且有标签修饰,不过这个标签是可以通过es进行修改的;文章来源地址https://www.toymoban.com/news/detail-501365.html

"highlight": {
    "patient_name": [
        "<em>李</em>雪"
    ]
}

⭐ terms 查询

  • terms 查询和 term 查询一样,但它允许你指定多值进行匹配;
  • 如果这个字段包含了指定值中的任何一个值,那么这个文档满足条件
{
    "query": {
        "terms": {
            "patient_name": [ // 查询患者名字中包含 赵 钱 孙字符的文档
                "赵",
                "钱",
                "孙"
            ]
        }
    }
}

⭐多字段查询(multi_match)

{
    "query": {
        "multi_match": {
            "query": "山东",
            "fields": [
                "patient_address", // 这里为检索的字段
                "address"
            ]
        }
    }
}

到了这里,关于【ElasticSearch】ElasticSearch常用查询api集合(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch的常用查询语法(大全)

    参考文章网址:https://www.cnblogs.com/xiohao/p/12970224.html es查询 修改时,不指定的属性会自动覆盖,只保留指定的属性(不正确的修改指定文档方式) 使用POST命令,在id后面跟_update,要修改的内容放到doc文档(属性)中(正确的修改指定文档方式) 准备数据 查询语句 输出结果 通过观察

    2024年02月05日
    浏览(46)
  • 常用的Elasticsearch查询DSL

    1.基本查询 2.多条件查询 3.范围查询 4.复杂查询 5.聚合查询

    2024年02月12日
    浏览(47)
  • ElasticSearch常用查询命令查看基本信息

    查看es的集群状态 http://IP:9200/_cat/healthv 注: IP指es集群某个ip地址, v表示格式化输出 查看es集群节点列表 http://IP:9200/_cat/nodesv 查看es集群所有索引及数据大小 http://IP:9200/_cat/indicesv 查看单个索引结构信息 http://IP:9200/indexNamepretty=true 注: indexName是索引名字, pretty=true表示格式化输出

    2024年02月03日
    浏览(35)
  • 【微服务】Elasticsearch常用查询&结果处理(三)

    🚗Es学习·第三站~ 🚩Es学习起始站:【微服务】Elasticsearch概述环境搭建(一) 🚩本文已收录至专栏:微服务探索之旅 👍希望您能有所收获 在上一站的学习中,我们已经导入了大量数据到es中,实现了数据存储功能。接下来如需看自己实操效果请根据上一站的 三.环境搭建 部

    2024年02月04日
    浏览(38)
  • Elasticsearch常用查询语法及RestClient操作

    match查询 :全文检索查询的一种,会对用户内容分词,然后去倒排索引库检索,语法。 multi_match :和match类似,但是它允许多个字段进行查询 解释:在 hotel索引库 中按照 address 和 name 两个字段搜索值 包含北京 的文档 精准查询一般是查找keyword,数值,日期,boolean等 不可分

    2024年04月25日
    浏览(49)
  • Elasticsearch 常用的增加、删除、修改、查询语句

    新增 删除 修改 批量增删改 查询 查询指定索引下全部数据 查询指定索引下指定id的数据 查询指定索引下全部数据 查询指定值(match) 在多个字段中查询指定值(multi_match) match、multi_match是模糊匹配,匹配时会对所查找的进行分词,然后按分词匹配查找。 term 查询

    2024年02月03日
    浏览(39)
  • Elasticsearch基础学习-常用查询和基本的JavaAPI操作ES

    Elasticsearch是一个基于 lucene 、分布式、通过Restful方式进行交互的 近实时搜索 平台框架。 ELK技术栈是Elasticsearch、Logstash、Kibana三大开元框架首字母大写简称。 而Elasticsearch 是一个 开源的高扩展的分布式全文搜索引擎 , 是整个 ELK技术栈的核心。 Elasticsearch是一个基于lucene、分

    2024年02月11日
    浏览(56)
  • 手机通讯类、ip查询、智能核验、生活常用API接口推荐

    手机号码归属地:提供三大运营商的手机号码归属地查询。 空号检测:通过手机号码查询其在网活跃度,返回包括空号、停机等状态。 手机在网状态:支持传入三大运营商的号码,查询手机号在网状态,返回在网等多种状态。 短信验证码:支持三大运营商,支持大容量高并

    2024年02月05日
    浏览(46)
  • ES常用命令与常用查询(1)

    查看集群状态 创建索引 查看所有索引 查看索引信息 删除索引 2.1 查询所有 match_all 使用match_all,默认只会返回10条数据 返回指定条数 size 不能无限大,如果过大会出现异常 1、查询结果的窗口太大,from + size的结果必须小于或等于10000,而当前查询结果的窗 口为20000。 2、可以

    2024年02月06日
    浏览(50)
  • 域名批量查询功能常用查询方法教程

    一些用户在抱怨,要找到好域名怎么就那么不容易呢,能不能让我批量查下不含0的数字啊,能不能查下不含4的数字啊,能不能查下AABBB这样的域名啊…… 别着急,这就给您支招啦:通过西部数码强大的批量查询功能,您想要的米,统统都能查到。接下来就回答下大家长遇到

    2023年04月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包