elasticsearch 查询语法

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

  • match_all 查询所有
GET test/_search
{
  "query": {
    "match_all": {}
  }
}
  • match 单字段匹配查询
GET test/_search
{
  "query":{
    "match":{
      "name":"zhangsan"
    }
  }
}
  • multi_match 多字段匹配查询
GET test/_search
{
  "query":{
    "match":{
      "name":"zhangsan"
    }
  }
}
  • term 关键字精确查询
GET test/_search
{
	"query": {
		"term": {
			"name": {
				"value": "zhangsan"
			}
		}
	}
}
  • terms 多关键字精确查询
GET test/_search
{
	"query": {
		"terms": {
			"status": {
				"value": [0,1,2,3]
			}
		}
	}
}
  • fuzzy 模糊匹配选择展示指定字段
GET test/_search
{
  "query": {
    "fuzzy": {
      "data": "好"
    }
  },
   "_source": ["name", "data"]
}
  • 过滤字段
    • includes:来指定想要显示的字段
    • excludes:来指定不想要显示的字段
GET test/_search
{
  "query": {
    "terms": {
      "nickname": ["zhangsan"]
    }
  },
  "_source": {
    "includes": ["name","nickname"
    ]
  }
}
  • exists 查询字段age存在且id等于45的数据
GET /test/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "exists": {
            "field": "age"
          }
        },
        {
          "term": {
            "id": {
              "value": 45
            }
          }
        }
      ]
    }
  }
}
  • 组合查询 排序+分页
GET /test/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "is_success": [1,2]
          }
        },
        {
          "term": {
            "deleted": 0
          }
        }
      ]
    }
  },
  "_source": ["_id","name","stage"],
  "sort": [
    {
      "customer_gmt_create_time": {
        "order": "asc"
      }
    }
  ],
  "from": 0,
  "size": 10
}
  • match_phrase_prefix 前缀查询
GET test/_search
{
  "query": {
    "match_phrase_prefix": {
      "name": "wang"
    }
  }
}
  • 指定id批量查询
GET test/_search
{
  "query": {
    "ids": {
      "values": ["66606794","66606795"]
    }
  }
}

  • 组合查询(range+should)
GET test/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "create_time": {
              "gte": "2017-12-25 01:25:10",
              "lte": "2017-12-25 12:10:36"
            }
          }
        },
        {
          "bool": {
            "should": [
              {
                "term": {
                  "name": {
                    "value": "zhangsan"
                  }
                }
              },
              {
                "term": {
                  "age": {
                    "value": 7
                  }
                }
              }
            ]
          }
        }
      ]
    }
  },
  "_source": ["alarm_name","alarm_time","alarm_type","info"],
  "sort": [
    {
      "customer_gmt_create_time": {
        "order": "asc"
      }
    }
  ],
  "from": 0,
  "size": 10
}

文章来源地址https://www.toymoban.com/news/detail-411641.html

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

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

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

相关文章

  • Elasticsearch ES 简单查询 Query String Search 入门

    尝试了text类型排序需要特别处理下. \\\"reason\\\" : \\\"Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [name] in order to load field data by uninverting the inverted index.

    2024年02月16日
    浏览(45)
  • Elasticsearch 中的 term、terms 和 match 查询

    目录 term 查询 terms 查询 match 查询 注意事项 结论    Elasticsearch 提供了多种查询类型,用于不同的搜索需求。 term 、 terms 和 match 是其中最常用的一些查询类型。下面分别介绍每种查询类型的用法和特点。   term 查询用于精确值匹配。它通常用于(keyword)类型的字段,

    2024年04月14日
    浏览(49)
  • ElasticSearch - 基于 JavaRestClient 查询文档(match、精确、复合查询,以及排序、分页、高亮)

    目录 一、基于 JavaRestClient 查询文档 1.1、查询 API 演示 1.1.1、查询基本框架 DSL 请求的对应格式 响应的解析 1.1.2、全文检索查询 1.1.3、精确查询 1.1.4、复合查询 1.1.5、排序和分页 1.1.6、高亮 1.1.1、查询基本框架 接下里通过一个 match_all 查询所有,来演示以下基本的 API. 由上可

    2024年02月07日
    浏览(48)
  • Elasticsearch:Multi-match (multi_match) 及 Disjunction max 查询

    多重匹配(multi_match)查询,顾名思义就是跨多个字段搜索查询。 例如,如果我们想在 title、synopsis 和 tags 三个字段中搜索 Java 一词,那么 multi_match query 就是答案。另外,很多开发者还不是很清楚 multi-match 及 disjunction max query 的区别和联系。在今天的文章中,我将详述这两个

    2024年02月05日
    浏览(46)
  • elasticsearch 深度分页查询 Search_after(图文教程)

    前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 search_after 是 Elasticsearch 提供的一种分页查询方式,它可以用来在已经排序的结果集中进行分页查询。 search_after查询步骤如下(下面有具体的例子帮助理解):

    2024年04月11日
    浏览(47)
  • ElasticSearch中查询语句用法(match、match_phrase、multi_match、query_string)

    略 1.1 不同字段权重         如果需要为不同字段设置不同权重,可以考虑使用 bool 查询的 should 子句来组合多个 match 查询,并为每个 match 查询设置不同的权重。         上面的查询将在 product_name 字段和 description 字段中搜索包含 \\\"apple\\\" 的文档,并为 product_name 字段设

    2024年02月10日
    浏览(41)
  • ElasticSearch系列 - SpringBoot整合ES之全文搜索匹配查询 match

    官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html 权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html 1. 数据准备 官方测试数据下载地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,数据量很大,我们自己构造数据吧。 2. m

    2023年04月08日
    浏览(51)
  • ElasticSearch系列 - SpringBoot整合ES:短语匹配查询 match_phrase

    1. ElasticSearch match_phrase查询是什么?它与match查询有什么区别? match_phrase查询是一种用于匹配短语的查询方式,可以用于精确匹配多个单词组成的短语。它会将查询字符串分解成单词,然后按照顺序匹配文档中的单词,只有当文档中的单词顺序与查询字符串中的单词顺序完全

    2024年02月12日
    浏览(50)
  • ElasticSearch系列 - SpringBoot整合ES:多字段查询 multi_match

    1. 什么是 ElasticSearch 的 multi_match 查询? 有时用户需要在多个字段中查询,除了使用布尔查询封装多个match查询之外,可替代的方案是使用multi_match。可以在multi_match的query子句中组织数据匹配规则,并在fields子句中指定需要搜索的字段列表。 以下是一个示例multi-match查询

    2023年04月21日
    浏览(64)
  • Java客户端调用elasticsearch进行深度分页查询 (search_after)

    前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 具体的Search_after解释,可以看我这篇文章 elasticsearch 深度分页查询 Search_after(图文教程) 参考:https://blog.csdn.net/qq_44056652/article/details/126341810 作者:神的孩子

    2024年03月22日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包