elastic search6.2.2 实现用户搜索记录查询(去重、排序)
elastic search6.2.2 实现搜索记录查询 ,类似新浪微博这种,同样的搜索记录后面时间点的会覆盖前面的(主要思路:关键词去重,然后按时间排序)

先创建索引
//我的搜索
PUT my_search
{
"settings":{
"number_of_replicas": 0
},
"mappings":{
"_doc":{
"properties":{
"user": {"type": "integer"},
"word": {"type": "keyword"},
"datetime": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
插入搜索记录
POST my_search/_doc
// 自动生成ID {
"user": 1,
"word": "区块链",
"datetime":"2018-02-08 23:58:59"
} {
"user": 1,
"word": "刘平",
"datetime":"2018-03-08 23:58:59"
} {
"user": 1,
"word": "你好",
"datetime":"2018-04-08 23:58:59"
} {
"user": 1,
"word": "我好",
"datetime":"2018-05-08 23:59:59"
} {
"user": 1,
"word": "你好",
"datetime":"2018-06-08 23:58:59"
} {
"user": 1,
"word": "他好",
"datetime":"2018-07-09 23:58:59"
} {
"user": 1,
"word": "他好",
"datetime":"2018-08-09 23:58:59"
}
写入文档后的搜索记录可视界面(以按时间排序)

下面要读取出来了
POST my_search/_search
// 我的最近搜索记录(展示10条)
{
"query":{
"match":{
"user":"1"
}
},
"aggs":{
"my_so":{
"terms":{
"field":"word",
"size":10,
"order":{
"max_time":"desc"
}
},
"aggs":{
"max_time":{
"max":{
"field":"datetime"
}
}
}
}
},
"size":0,
"from":0
}
搜索结果:

下面是网友总结的一些聚合排序方法:
把 Elasticsearch 当数据库使:聚合后排序
elastic search6.2.2 实现用户搜索记录查询(去重、排序)的更多相关文章
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(四) 之 用户搜索(Elasticsearch),加好友流程(1)。
前面几篇基本已经实现了大部分即时通讯功能:聊天,群聊,发送文件,图片,消息.不过这些业务都是比较粗犷的.下面我们就把业务细化,之前用的是死数据,那我们就从加好友开始吧.加好友,首先你得知道你要加谁.L ...
- MyBatis 用户表记录数查询
搭建MyBatis开发环境,实现用户表记录数查询 1.在MyEclipse中创建工程,导入MyBatis的jar包
- iOS 搜索记录
需求描述: 使用单独的搜索界面, 提供用户进行搜索并留下搜索记录. 搜索记录可以提供用户进行再次搜索, 或者把搜索记录清空. 方案和技术点: 存储方式使用 NSUserDefaults, 把对应的字段 ...
- 用asp.net core 把用户访问记录优化到极致
菜菜呀,前几天做的用户空间,用户反映有时候比较慢呀 CEO,CTO,CFO于一身的CXO 是吗? 菜菜 我把你拉进用户反馈群,你解决一下呀 CEO,CTO,CFO于一身的CXO (完了,以后没清净时候 ...
- Linux实战案例(4)CentOS清除用户登录记录和命令历史方法
CentOS清除用户登录记录和命令历史方法 清除登陆系统成功的记录[root@localhost root]# echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等信 ...
- js实现搜索记录列表
<div class="sy_div28"> <div class="sy_div23"> <span>搜索历史</s ...
- 微信小程序开发之带搜索记录的搜索框
实现功能:点击搜索框,有搜索记录时以下拉菜单显示,点击下拉子菜单,将数据赋值到搜索框,点击搜索图标搜索,支持清空历史记录,可手动输入和清空查询关键字, UI: wxml: <!--查询历史记录数 ...
- Android 淘宝搜索记录分析及千牛数据库名称关联
一 taobao搜索关键字分析1.导出淘宝数据文件夹.2.搜索search 找到search文件夹.查看里面可疑文件如history_8d4255cc9c9199c6ec3be940936986b9. ...
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
随机推荐
- CentOS上部署Django+Nginx+Uwsgi环境
在CentOS上部署Django+Nginx+Uwsgi环境 奇谭 2016-09-01 评论 Linux python django nginx uwsgi VirtualEnv的作用:创建隔 ...
- python __new__和__init__
转载:http://www.cnblogs.com/tuzkee/p/3540293.html 1 2 3 4 5 6 7 8 class A(object): def __init__(se ...
- js排序算法05——快速排序
终于到了传说中的快速排序算法了,快速排序的思想和归并排序一样,都是采用分治思想,不同之处在于归并每次将数组一分为二,最后将小的数组进行比较,合并为大数组.快排是每次找一个主元,也就是基准数,按照这个基 ...
- AOP的Advice
@Before 方法执行之前执行 @AfterReturning 方法正常执行完成后执行 @AfterThrowing 抛出任何异常之后执行 @After 就是相当于finally,它会将你的方法t ...
- 【LeetCode 67_字符串_算术运算】Add Binary
string addBinary(string a, string b) { int alen = a.size(); int blen = b.size(); ) return b; ) retur ...
- C++11_ Variadic Templates
版权声明:本文为博主原创文章,未经博主允许不得转载. 这次主要介绍C++11的又一个新特性 Variadic Templates (可变模板参数) 它的实现类似于initializer_list< ...
- 剑指offer--48.机器人的运动范围
这道题不是要求走一趟最多走多少,而是最多走多少,WA几次才想通. ------------------------------------------------------------------- ...
- 用位运算替代js中的常见操作
一.补码 所谓补码就是所有位取反: 例如3的二进制表示是:00000011,那么3的补码就是11111100: 对于-3的二进制表示就是3的补码+1:11111101: 所以二进制的负数就是该数的补码 ...
- 使用kibana来进行ElasticSearch的信息查询检索
大家经常会听到使用ELK搭建日志管理平台.完成日志聚合检索的功能,那么这个平台到底是个什么概念,怎么搭建,怎么使用呢? ELK包括ElasticSearch(数据存储.快速查询).logstash(日 ...
- 随手一写就是一个侧滑关闭activity
刚忙完一段时间,今天刚清闲会,就把以前写的东西整理整理.于是冥冥中发现有些东西完全可以共享出来,毕竟那么常见,而且简单实用. 实现原因 其实侧滑关闭activity在网上也有大量的文章去介绍他,我也有 ...