当前位置:   article > 正文

elasticsearch7实战(四)——单条件查询_elasticsearch 查询条件记录存不存在

elasticsearch 查询条件记录存不存在

前言

从本篇文章开始将开始介绍ES的查询语法。相比于SQL,ES的查询语法可以说非常难以记忆。但是通过学习我发现也并非无迹可寻。
从本篇开始的以后几章将着重介绍ES的查询语法。本篇将介绍的是ES最基本的查询——单个条件的查询语句。

查询语法

1. 根据id查询

//其中index_name表示要查询的索引,doc_id表示要查询文档的id。后面的filter_path在上一章有讲过,如果忘记可以进行查看。
http://{{ _.es_url }}/{index_name}/_doc/{doc_id}?filter_path=-_shards
  • 1
  • 2

2.查询全部

查询全部有几种方式,将逐一介绍。
1.get请求查询全部

//下面index_name可以有很多写法,如果要查某个索引,就写这个索引的全名,如果要查询以某字符开头的索引,写「index_prefix*」,如需要查以「test-2021」开头的全部索引,可以写「test-2021*」进行查询。
http://{{ _.es_url }}/{index_name}/_search?pretty=true
  • 1
  • 2

2.post请求查询全部

{
	"query":{
		"match_all":{}
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5

3. term查询

首先还是要先写明要查询的索引。下面url中有参数,这里不再赘述,如有需要请翻看之前的文章。

http://{{ _.es_url }}/{index_name}/_search?track_total_hits=true
  • 1

查询语法:

{
	"query":{
		"term":{
			"ip":"127.0.0.1"
		}
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

上面语法中query关键字,表示里面要写的是查询条件。term关键字表示查询方式。ip是要查询的字段。127.0.0.1是该字段的值。
term具体是什么意思呢,后面会结合match一起说。

4.match查询

{
  "query":{
    "match":{
      	"ip":"127.0.0.1"
    }
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

语法与term查询相同,不同的是关键字换成了match。match查询和term查询的区别:

  • term查询和match查询,前者代表精确查找,而后者代表模糊查找,类似SQL中的like。但是有一个前提条件,查询的字段必须有分词,否则term和match的查询结果是一致的。
  • term查询和match查询都只能包含单个字段的查询,如果要多个字段组合查询需要使用布尔条件进行组合,后面会讲
  • match查询,如果要查询的字段可以分词。则返回分词匹配的结果,类似like。比如,如果要查询 “match”:{“user”:“tom cat”},返回的结果是所有包含tom和cat的文档,也就是匹配所有含有tom和cat的结果,是或条件
  • 如果就是要查【tom cat】,不能使用match关键字,而是term关键字

5.range查询

range是基本查询中的一种,以term和match并列,用于查询范围。

{
    "query": {
        "range": {
            "analyzTime": {
                "gte": 500,
                "lte": 2000
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

6.exists查询

查询文档中是否包含某个字段。exists关键字用于指定需要存在的字段。如果需要也可以将其包含在布尔查询条件中.

{
    "track_total_hits": true,
    "query": {
        "exists": {
            "field": "device"
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

总结

以上是几种最基本的查询方式。这些查询方式都仅能查询一个条件。很明显在实际使用中这肯定是不满足需求的,但是所有的复杂查询都是由以上几种基本查询组合而来的。
因此对本章内容掌握以后对以后复杂查询的理解至关重要。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/454515
推荐阅读
相关标签
  

闽ICP备14008679号