elasticsearch系列之排序
来源:互联网 发布:免费网络英语课堂 编辑:程序博客网 时间:2024/05/17 04:11
ElasticSearch想关性排序
在默认的情况下,结果集会按照相关性进行排序,也就是相关性越高,排名越靠前。
本次我们说到的是字段值排序
一级排序
在常见的例子当中,我们会按照时间进行排序,从而将最新的文档排列靠前。我们使用sort参数进行排序
看下面例子
GET /_search{ "query" : { "filtered" : { "filter" : { "term" : { "user_id" : 1 }} } }, "sort": { "date": { "order": "desc" }}}
得到的结果
"hits" : { "total" : 6, "max_score" : null, <1> "hits" : [ { "_index" : "us", "_type" : "tweet", "_id" : "14", "_score" : null, <1> "_source" : { "date": "2014-09-24", ... }, "sort" : [ 1411516800000 ] <2> }, ...}
<1> _score 字段没有经过计算,因为它没有用作排序。+
<2> date 字段被转为毫秒当作排序依据。
首先,在每个结果中增加了一个 sort 字段,它所包含的值是用来排序的。 在这个例子当中 date 字段在内部被转为毫秒,即长整型数字1411516800000等同于日期字符串 2014-09-24 00:00:00 UTC。
其次就是 _score 和 max_score 字段都为 null。计算 _score 是比较消耗性能的, 而且通常主要用作排序 – 我们不是用相关性进行排序的时候,就不需要统计其相关性。 如果你想强制计算其相关性,可以设置track_scores为 true。
多级排序
GET /_search{ "query" : { "filtered" : { "query": { "match": { "tweet": "manage text search" }}, "filter" : { "term" : { "user_id" : 2 }} } }, "sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }} ]}
多级排序,也就是结果集有限使用第一排序字段来排序,当第一排序值相同的时候,再也是第二排序字段对第一排序字段进行排序。
0 0
- elasticsearch系列之排序
- Elasticsearch之排序。
- Elasticsearch之Nested(嵌套)系列
- Elasticsearch系列篇之创建索引
- Elasticsearch系列篇之删除索引
- Elasticsearch系列篇之Get Index
- Elasticsearch系列篇之创建document
- Elasticsearch系列篇之Get document
- Elasticsearch系列篇之Delete document
- Elasticsearch学习系列之mapping映射
- Elasticsearch学习系列之mapping映射
- elasticsearch系列-elasticsearch教程
- elasticSearch系列-elasticSearch优化
- elasticsearch系列-elasticsearch学习心得
- 排序系列之冒泡排序
- 排序系列之选择排序
- 排序系列之归并排序
- 排序系列之堆排序
- C#之WinForm基础 设置文件对话框只能看到一种指定类型的文件
- 伸展树(splay树)
- MAC之Sublime Text 2插件安装与步骤
- Linux(二)服务器运行环境配置
- 奇虎360_2017校园招聘笔试编程题第一题
- elasticsearch系列之排序
- JQuery 的小技巧
- 数字三角形--hihocoder(DP)
- java包装类
- Allwinner A33/A31 FrameWare基本配置
- Java中内存问题总结二(栈、堆、常量池、String类在内存中实现 )
- 18. 4Sum 加 神奇的发现加疑问。。。
- 51中的 外部中断
- C#之WinForm基础 添加菜单栏