ES中如何查询Top10数据
问题描述:
在实际项目中,查询Top10数据的场景非常常见,比如查询票房前十的电影,销售榜前十的商品等。
那么在ES中如何查询Top10的数据呢?
问题分析:
一般Top10问题,都可以转化成先排序再取排行前10的问题,那么实现就简单了。
数据准备
创建索引book,获取价格最贵的3本书的信息。
PUT book
{"mappings": {"properties": {"name": {"type": "text", "analyzer": "ik_smart"},"price": {"type": "double"}}}
}
PUT /book/_bulk
{ "create": { } }
{"name": "java编程思想","price": 100}
{ "create": { } }
{"name": "ES实战","price": 120}
{ "create": { } }
{"name": "ES从入门到精通","price": 60}
{ "create": { } }
{"name": "微服务架构 设计模式","price": 160}
{ "create": { } }
{"name": "架构真经","price": 90}
{ "create": { } }
{"name": "spring boot实战","price": 50}
{ "create": { } }
{"name": "高性能mysql","price": 80}
实现方案:
1、SQL查询
POST /_sql?format=txt
{"query": "SELECT * FROM book ORDER BY price DESC","fetch_size": 3
}POST /_sql?format=txt
{"query": "SELECT * FROM (SELECT * FROM book ORDER BY price DESC ) limit 3"
}
查询结果:
2、DSL查询
POST /_sql/translate
{"query": "SELECT * FROM book ORDER BY price DESC","fetch_size": 3
}
转化结果:
{"size" : 3,"_source" : {"includes" : ["name","price"],"excludes" : [ ]},"sort" : [{"price" : {"order" : "desc","missing" : "_first","unmapped_type" : "double"}}]
}
完整DSL语句:
POST /book/_search
{"size" : 3,"_source" : {"includes" : ["name","price"],"excludes" : [ ]},"sort" : [{"price" : {"order" : "desc","missing" : "_first","unmapped_type" : "double"}}]
}
ES中如何查询Top10数据相关推荐
- ES中SQL查询详解
一.Elasticsearch SQL简介 Elasticsearch SQL 是一个 X-Pack 组件,它允许对 Elasticsearch 实时执行类似 SQL 的查询.无论是使用 REST 接 ...
- es中should查询使用注意
今天在使用must,must_not,should的使用的时候,发现了以下博客 https://blog.csdn.net/qq_31748587/article/details/101449613 ...
- python去重复的数据_Python中mysql查询重复数据并删除重复数据
#coding:utf-8 import mysql.connector mydb = mysql.connector.connect( host='localhost', user='root', ...
- Mysql数据库中查询重复数据和去重数据 , 删除重复数据的sql及分析
数据库中有重复数据时,用到哪些sql语句? 建表: CREATE TABLE `user` (`id` bigint(255) NOT NULL AUTO_INCREMENT,`name` varch ...
- ElasticSearch搜索引擎结合Mysql数据库,查询mysql数据
需要下载的东西 ElasticSearch--https://www.elastic.co/cn/downloads/elasticsearch Logstash(版本需要和ES对应)--https: ...
- SpringData ES中字段名和索引中的列名字不一致导致的无法查询数据的解决方法
为什么80%的码农都做不了架构师?>>> 用SpringDataElasticsearch查询数据的时候可以将实体中的字段名与ES中mapping中field的名字起成一样的名 ...
- 基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率
基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率 1.拉取logstash,kibana,es,mysql镜像 #命令 ...
- ES中实现分页查询数据并返回想要的字段
在日志收集系统中,最近需要通过httpclient获取es中的日志信息,所以学习了一些es的查询语句方面的用法: 分页 分页的本质 分页的本质是从"大的数据集"中取出一部分.比如1 ...
- es查询大文本效率_es中terms查询速度能否优化
es表结构如下:PUT demo/ { "mappings": { "demo": { "_all": { "enabled&qu ...
最新文章
- delphi char与string比较
- Spring-级联赋值
- 实时平台在趣头条的建设实践
- 特斯拉自动驾驶使用的技术_使用自回归预测特斯拉股价
- C 的Pair用法分类整理(精)
- java 静态变量 new_java中静态对象和普通变量在初始化静态变量的时候有什么区别??高手!!...
- python打包成exe导入文件_【转载】将python脚本打包成exe文件
- android 盒子刷 下载,一加5刷机盒子
- Java并发之ThreadLocal
- 前端核心技术必备知识库精华资源强力推荐
- Java Spring-事务管理
- 在C#中将字符串转换为字节数组
- VBA 函数 过程之间互相调用的技巧
- 啊哈C语言课后练习题
- cwrsync向linux免密同步,Cwrsync如何使用可以实现Linux与windows下的文件同步详解
- CF949D Curfew solution
- 数据结构与算法——先导篇
- Android MotionLayout As a Dancer
- 决战平安京选择正确的服务器,决战!平安京怎么预先选择自己的位置 匹配预选位流程攻略...
- 新兴实践_新兴文件系统简介
热门文章
- 读张鑫旭老师的《CSS世界》总结
- 7-5 统计英文字母和数字字符 (10 分)
- 【解决报错】java.sql.SQLException Access denied for user ‘root‘@‘localhost‘ (using password YES)
- SPI协议概括、SPI总线工作的四种方式和SPI接口时序
- linux uwsgi 非root,linux 安装uwsgi
- App Store/Google Play开发者如何收款?中国谷歌开发者收款方式总结
- IDEA导入lib目录下的jar包
- Vagrant安装centos/7虚拟机
- 网易云音乐api400 Bad Request
- 模糊理论相关学习(1)