云搜索服务 CSS-使用DSL语言在OpenSearch中搜索数据:常用的DSL查询语句
常用的DSL查询语句
下面列举了常用的DSL查询语句,全量的DSL查询语句请参见《Elasticsearch指南》。
- 设置查询条件过滤,等同于SQL语言中的where。
如下命令中,查询未在“_search”前面过滤索引,所以是查询所有索引。bool为条件句,filter强制过滤“status”字段为“published”并且“publish_date”字段为“2015-01-01”以后的文档,must规定“title”字段含有“Search”并且“content”字段含有“Search”。
must和filter字段的区别在于filter等同于SQL的where会过滤字段但不参与ES搜索的打分机制,must也属于过滤必须满足的条件,但是会根据查询的匹配程度对搜索到的文档进行打分,在返回的结果中越匹配的文档会越靠前显示。
GET /_search { "query": { "bool": { "must": [ { "match": { "title": "Search" } }, { "match": { "content": "search" } } ], "filter": [ { "term": { "status": "published" } }, { "range": { "publish_date": { "gte": "2015-01-01" } } } ] } } }
- 聚合查询,近似于SQL语言中的Group by。
该查询是根据genre这个字段进行聚合,会根据test索引里的title字段进行分类统计。如果title为text(含keyword)类型,需要使用“title.keyword”进行聚合,默认情况下Elasticsearch和OpenSearch无法直接对text类型的字段进行聚合。其中titles仅为聚合的命名,可以根据需要命名为titles或者titleaggs等。
GET /test/_search { "aggs": { "titles": { "terms": { "field": "title.keyword" } } } }
以上聚合查询的例子包含了test索引的所有文档,即match_all查询条件为隐式条件。可以配合设置查询条件过滤中的查询条件过滤特定的文档进行聚合。
- GaussDB数据库常用语句_GaussDB数据库_高斯数据库常用语句
- CSS是什么_云搜索服务_CSS功能
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- GaussDB数据库的使用现状_GaussDB最大的优势_高斯数据库的使用现状
- 怎样将文字转换成语音播放_免费试用_文字转换成语音步骤分享_文字转化为声音
- 数据治理中心_数据开发_数据开发能力_脚本和节点介绍-华为云
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- 云日志服务的使用限制_云日志服务_使用限制说明
- GaussDB索引_华为数据库GaussDB_高斯数据库索引_华为云
- 如何实时查看日志_日志管理平台_日志服务-华为云