es常见查询

1、查询索引先关信息
curl -XGET 10.15.4.121:9200/test-2023.08.25?pretty=true

2、查询具体的数据
查询文档

GET pro-sec-2023.03/_search
{
“query”: {
“match_all”: {}
}
}

3、查询字符串(单字段查询,不能多字段组合查询)
GET /pro-sec-2023.03/_search?q=fields.serverip:10.157.4.121

GET /pro-sec-2023.03/_search
{
“query”:{
“match”:{
“fields.serverip”:“10.157.4.121”
}
}
}

4、match系列之match_phrase(短语查询)
GET test1/doc/_search
{
“query”:{
“match_phrase”: {
“title”: “中国”
}
}
}如果只是用match的话会返回包含中或国的字符串

5、match系列之match_phrase_prefix(最左前缀查询)智能搜索–以什么开头

GET test2/_search
{
“query”: {
“match_phrase_prefix”: {
“desc”: “bea”
}
}
}

6、multi_match是要在多个字段中查询同一个关键字
GET test2/_search
{
“query”: {
“multi_match”: {
“query”: “beautiful”,
“fields”: [“title”,“desc”]
}
}
}

或者(指定type是phrase_prefix或者match_phrase_prefix)
GET test2/doc/_search
{
“query”: {
“multi_match”: {
“query”: “bea”,
“fields”: [“desc”],
“type”: “phrase_prefix”
}
}
}

match 查询相关总结

1、match:返回所有匹配的分词。

2、match_all:查询全部。

3、match_phrase:短语查询,在match的基础上进一步查询词组,可以指定slop分词间隔。

4、match_phrase_prefix:前缀查询,根据短语中最后一个词组做前缀匹配,可以应用于搜索提示,但注意和max_expanions搭配。其实默认是50…

5、multi_match:多字段查询,使用相当的灵活,可以完成match_phrase和match_phrase_prefix的工作。

7、排序查询
GET test/_search
{
“query”: {
“match_all”: {}
},
“sort”: [
{
“age”: {
“order”: “desc”
}
}
]
}
或者
GET test/_search?q=interest:computer&sort=height:asc

8、分页查询
GET test/doc/_search
{
“query”: {
“match_phrase_prefix”: {
“name”: “wang”
}
},
“from”: 0, 索引从几开始
“size”: 1 //展示1条
}

9、ES的bool查询 (must、should)
单条件组合
GET test/_search
{
“query”: {
“bool”: {
“must”: [
{
“match”: {
“name”: “wangfei”
}
}
]
}
}
}
多条件组合
GET test/doc/_search
{
“query”: {
“bool”: {
“must”: [
{
“match”: {
“name”: “wanggfei”
}
},{
“match”: {
“age”: 25
}
}
]
}
}
}

符合一个条件就返回
GET test/_search
{
“query”: {
“bool”: {
“should”: [
{
“match”: {
“name”: “wangjifei”
}
},
{
“match”: {
“age”: 27
}
}
]
}
}
}

10、filter(条件过滤查询,过滤条件的范围用range表示gt表示大于、lt表示小于、gte表示大于等于、lte表示小于等于)
GET test/_search
{
“query”: {
“bool”: {
“must”: [
{
“match”: {
“name”: “wangjifei”
}
}
],
“filter”: {
“range”: {
“age”: {
“gte”: 10,
“lt”: 27
}
}
}
}
}
}
11、只查看某些属性
GET test3/_search
{
“query”: {
“match”: {
“name”: “顾”
}
},
“_source”: [“name”,“age”]
}

12、term和match的区别是:match是经过analyer的,也就是说,文档首先被分析器给处理了。根据不同的分析器,分析的结果也稍显不同,然后再根据分词结果进行匹配。term则不经过分词,它是直接去倒排索引中查找了精确的值了。
GET w1/_search
{
“query”: {
“term”: {
“t2”: “hi single dog”
}
}
}

GET test/_search
{
“query”: {
“terms”: {
“age”: [
“27”,
“28”
]
}
}
}

13、ES的聚合查询avg、max、min、sum
GET zhifou/_search
{
“query”: {
“match”: {
“from”: “gu”
}
},
“aggs”: {
“my_avg”: {
“avg”: {
“field”: “age”
}
}
},
“size”: “0”(如果只想看结果不想看具体的值)
}

14、分组查询
GET zhifou/_search
{
“size”: 0,
“query”: {
“match_all”: {}
},
“aggs”: {
“age_group”: {
“range”: {
“field”: “age”,
“ranges”: [
{
“from”: 15,
“to”: 20
},
{
“from”: 20,
“to”: 25
},
{
“from”: 25,
“to”: 30
}
]
}
}
}
}

查询结果
{
“took” : 9,
“timed_out” : false,
“_shards” : {
“total” : 5,
“successful” : 5,
“skipped” : 0,
“failed” : 0
},
“hits” : {
“total” : 5,
“max_score” : 0.0,
“hits” : [ ]
},
“aggregations” : {
“age_group” : {
“buckets” : [
{
“key” : “15.0-20.0”,
“from” : 15.0,
“to” : 20.0,
“doc_count” : 1
},
{
“key” : “20.0-25.0”,
“from” : 20.0,
“to” : 25.0,
“doc_count” : 1
},
{
“key” : “25.0-30.0”,
“from” : 25.0,
“to” : 30.0,
“doc_count” : 2
}
]
}
}
}
聚合后求平均值 聚合函数的使用,一定是先查出结果,然后对结果使用聚合函数做处理
GET zhifou/_search
{
“size”: 0,
“query”: {
“match_all”: {}
},
“aggs”: {
“age_group”: {
“range”: {
“field”: “age”,
“ranges”: [
{
“from”: 15,
“to”: 20
},
{
“from”: 20,
“to”: 25
},
{
“from”: 25,
“to”: 30
}
]
},
“aggs”: {
“my_avg”: {
“avg”: {
“field”: “age”
}
}
}
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是Elasticsearch? Elasticsearch是一个开源的分布式搜索和分析引擎,它可以快速地存储、搜索和分析大量的数据。 2. Elasticsearch的主要特点是什么? Elasticsearch的主要特点包括:分布式、高可用、实时搜索、全文搜索、多种查询方式、支持多种数据类型、可扩展性强等。 3. Elasticsearch的数据结构是什么? Elasticsearch的数据结构是基于文档的,每个文档都是一个JSON格式的数据对象,可以包含任意数量的字段。 4. Elasticsearch的索引是什么? Elasticsearch的索引是一个包含多个文档的数据集合,每个文档都有一个唯一的ID,可以通过ID来访问文档。 5. Elasticsearch的查询方式有哪些? Elasticsearch的查询方式包括:全文搜索、精确匹配、模糊匹配、范围查询、布尔查询、聚合查询等。 6. Elasticsearch的分布式架构是怎样的? Elasticsearch的分布式架构是基于节点的,每个节点都可以存储数据和执行查询,节点之间可以相互通信和协调工作,从而实现数据的分布式存储和查询。 7. Elasticsearch的数据分片是什么? Elasticsearch的数据分片是将一个索引分成多个部分,每个部分称为一个分片,每个分片可以存储一部分数据,从而实现数据的分布式存储和查询。 8. Elasticsearch的数据备份是怎样的? Elasticsearch的数据备份是通过副本实现的,每个分片可以有多个副本,副本可以分布在不同的节点上,从而实现数据的高可用和容错。 9. Elasticsearch的性能优化有哪些? Elasticsearch的性能优化包括:合理设置分片和副本、使用合适的查询方式、优化索引结构、使用缓存等。 10. Elasticsearch的安全性如何保障? Elasticsearch的安全性可以通过设置访问控制、加密通信、使用SSL证书等方式来保障。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值