摘要: Solr查询每一次返回的数据都有一定的顺序,特定顺序的结果对于业务来说可能非常重要。

不指定排序

一般我们不指定排序规则,这样的结果能满足大部分需求,默认是用文档的得分作为排序标准。相当于加上了参数sort=score desc,这里的score是solr的一个隐藏字段,衡量这个文档对于该查询参数的权重。使用如下的HTTP查询请求:
http://localhost:8080/solr/core/select?q=*:*&fl=*,score
返回数据:

{"responseHeader":{"status":0, "QTime":0, "params":{ "q":"*:*", "fl":"*,score", "wt":"json"}}, "response":{"numFound":106,"start":0,"maxScore":1.0,"docs":[ { "id":"c3812fee-de7a-48e5-a60d-79a882aca823", "title_s":"皇帝讽刺剧", "artist_s":"鲍勃·迪伦", "country_s":"美国", "company_s":"哥伦比亚", "price_d":10.9, "year_s":"1985", "type_s":"光盘", "description_s":"夏天的午后听Bob Dylan的歌特别容易被催眠", "_version_":1551502047719718912, "score":1.0 }, ... ] } }

有一个socre的filed,所有score值为1,是因为我返回了所有数据,它们的权重都相同。

按某一filed排序

有时候,我们只关心某一字段,希望返回的数据根据这一字段排序。例如,我想查找所有书籍中比较便宜的书籍。可以使用查询参数sort=price_s asc,使用如下的HTTP查询请求:
http://localhost:8080/solr/core/select?q=*:*&sort=price_d asc

返回数据:

{"responseHeader":{"status":0, "QTime":0, "params":{ "q":"*:*", "sort":"price_d asc", "wt":"json"}}, "response":{"numFound":106,"start":0,"docs":[ { "id":"1900599155", "title_s":"渡边淳一作品精选集", "author_s":"渡边淳一", "category_s":"外国小说", "page_i":10000, "price_d":12.90, "odertime_dt":"2015-10-02T21:47:04Z", "publisher_s":"不知名出版社", "type_s":"图书", "description_s":"拥有众多的读者,我倍感喜悦。", "_version_":1552794664615018496 }, ... ] } }

按多个filed排序

有时候,我希望返回的数据先按权重排序,再按某一filed排序,那么可以使用多个field来排序,此时按第一个排序参数排序,如果第一个参数不能区分顺序,则按第二个参数排序。对于某次查询,我希望先按权重排序,权重相同则按价格排序,那么,查询参数可以为sort=score desc, price asc

含有函数的排序

有时候,排序规则可能需要两个filed的值做数学运算。比如,有一次排序基于两个字段的和,可以使用这样的查询参数sort=sum(x_d, y_d) desc(这里的x字段和y字段都为double类型)。

转载于:https://www.cnblogs.com/cuihongyu3503319/p/9522003.html

Solr查询参数sort(排序)相关推荐

  1. Solr学习总结(四)Solr查询参数

    今天还是不会涉及到.Net和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只有先明白了solr的基础内容和查询语法,后续学习solr 的C#和数据库操作,都是水到渠成的事.这里先列出sol ...

  2. solr查询参数使用说明

    q – 查询字符串,必须的.Solr 中用来搜索的查询.有关该语法的完整描述,请参阅 参考资料中的 "Lucene QueryParser Syntax".可以通过追加一个分号和已 ...

  3. 六、solr查询参数

    原地址:http://www.cnblogs.com/zhangweizhong/p/5056884.html 今天还是不会涉及到.Net和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只 ...

  4. Solr查询参数fq

    摘要: 查询参数fq即过滤查询(filter query).一般用来将查询的结果限定在某一范围,其作用类似于参数q,有时候可以被q取代. 限制某一字段值 搜索,有时候需要建立在某一特定条件下进行的.比 ...

  5. Solr查询参数wt

    摘要: 参数wt指定用哪个Response Writer去格式化输出.参见原文 利用Response Writer,可以很方便地将搜索的结果转化成多种形式,便于结果可以整合到不同的应用中去.Solr6 ...

  6. Elasticsearch _search查询参数及过滤

    笔记源自 : Elastic 中国社区官方博客 文章目录 GET /_search 简单搜索 Ids 指定Id值查询 Prefix 以特定前缀开头 Term 精确匹配值 Terms多字段匹配 Term ...

  7. Solr4:查询参数fq的用法(对结果进行过滤;两组关键词组合查询)

    Solr查询参数文档可以参考: http://wiki.apache.org/solr/CommonQueryParameters#head-6522ef80f22d0e50d2f12ec487758 ...

  8. solr常用查询参数意义及其简单用法

    最近开始搞solr,其查询界面的一些参数令人费解,于是写篇博客总结一下较常用的参数的意义和用法. 查询参数界面如下图: q:query 查询字符串 输入 * : *,返回所有结果 输入 apple,返 ...

  9. Mongo聚合函数使用Sort排序时内存不足导致查询失败,开启allowDiskUse=true

    目录 1.问题描述 2.问题解决 1. Java代码方式解决办法 2. Mongo 原生聚合函数解决办法 1.问题描述 由于项目原因, 需要向数据存储至mongo,在使用过程中 , 单个documen ...

最新文章

  1. linux下数据库的基本管理,数据库的管理_linux 运维之道 基础篇的技术博客_51CTO博客...
  2. 这是我看过最好的Java编程入门视频教程!
  3. 介绍一种导入文件夹中图片数据集的方法
  4. C语言实现牛顿-拉夫逊newton raphson求近似根roots(附完整源码)
  5. WebBrowser脚本错误的完美解决方案
  6. Openjudge NOI题库 ch0111/04 网线管理
  7. ASP.NET3.5 企业级项目开发 -- 第二章 数据访问层(DAL)的开发
  8. 据廖雪峰python3教程----python学习第十三天
  9. Java PushbackReader ready()方法与示例
  10. Win10 Nodejs搭建http-server注意点
  11. Linux系统根据端口号查找项目路径
  12. pandas小记:pandas数据输入输出
  13. 镜像下载cudnn+tensorflow
  14. 1.2 架构结构和视图
  15. adguard和adblock哪个好_这可能是最全的广告屏蔽方案了!
  16. 【网络编程】【SCTP】SCTP协议介绍,四次握手,三次挥手
  17. 高通820系列(apq8098平台,androido系统),mmm external/ethtool-5.2/,报错
  18. 数学中常见的arg min,arg max是什么意思
  19. 基于RTEMS的阿波罗STM32F429开发板(正点原子)适配
  20. python-urllib3

热门文章

  1. 将CSV和SQL数据加载到Pandas中
  2. SQL Server 数据库角色简介
  3. 你是否为类编写接口?我乞求你停下!
  4. 微软解释为什么 Rust 是系统编程的最佳选择
  5. Odoo10参考系列--Mobile JavaScript
  6. linux主设备号作用是什么,linux 主设备号为1 以及/dev/null的介绍
  7. parquet格式_【存储】基于列存之Parquet格式
  8. oracle的共享内存段,oracle共享内存段手工清理
  9. python tkinter button_Python连载60-Tkinter布局、按钮以及属性详解
  10. mysql 额外内存池_MySQL探秘(三):InnoDB的内存结构和特性