知识分享之Golang——Bleve中对其搜索结果进行自定义排序

简介: 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。知识分享系列目前包含Java、Golang、Linux、Docker等等。

知识分享之Golang——Bleve中对其搜索结果进行自定义排序

背景

知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

知识分享系列目前包含Java、Golang、Linux、Docker等等。

开发环境

内容

在日常使用Bleve组件编写搜索功能时,我们需要对其一些搜索结果进行特定规则的排序,这时就需要使用到如下代码了:

// query组装的搜索体,10每页十行 0 从0行开始,解释搜索参数
// 默认情况下,结果按分数降序排列
  sr := bleve.NewSearchRequestOptions(query, 10, 0, false)
// 排序数组
  var sortFields []string
// _score是Bleve自动计算的得分数,带有-前缀的表示降序
  sortFields = append(sortFields, "-_score")
  // 升序
  // sortFields = append(sortFields, "_score")
// 根据名称(name)降序
sortFields = append(sortFields, "-name"
  sr .SortBy(sortFields)

这里我们使用sr .SortBy加入我们一个特定的排序字段数组进行排序,通常可以有效满足日常的使用需求了,当然还有更高级的排序方式(编写自己的排序函数放入其中等),后续有机会我们再进行分享。

本文声明:

5330898-d1c72b6c90e378f3.png
知识共享许可协议
本作品由 cn華少采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

目录
相关文章
|
关系型数据库 Go PostgreSQL
golang pgx自定义PostgreSQL类型
golang的pgx驱动提供了大约70种PostgreSQL类型支持,但还是有一些类型没有涵盖,本文介绍如何自己编写代码支持特殊的类型。
|
4月前
|
JSON 安全 Go
[golang]使用logrus自定义日志模块
[golang]使用logrus自定义日志模块
|
存储 Java Linux
知识分享之Golang——Bleve中如何定义一个自定义文档映射对象
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
120 0
知识分享之Golang——Bleve中如何定义一个自定义文档映射对象
|
SQL Java Linux
知识分享之Golang——使用gorm时进行执行自定义SQL的几种方式
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
578 0
知识分享之Golang——使用gorm时进行执行自定义SQL的几种方式
|
Go Java 应用服务中间件
golang自定义路由控制实现(二)-流式注册接口以及支持RESTFUL
    先简单回顾一下在上一篇的文章中,上一篇我主要是结合了数组和Map完成路由映射,数组的大小为8,下标为0的代表Get方法,以此类推,而数组的值则是Map,键为URL,值则是我们编写对应的接口。但是上篇的设计仍存在着不足,主要是无法很好的面向RESTFUL设计,同时,我希望还能够希望一个功能,类似于SpringMVC中,可以将@Controller作用于类上,代表着该类下所有接口的一个起始路径。
1470 0
|
Prometheus Kubernetes Cloud Native
使用golang编写自定义prometheus metrics
使用golang编写自定义prometheus metrics
|
Java Go 网络架构
golang自定义路由控制实现(一)
    由于本人之前一直是Java Coder,在Java web开发中其实大家都很依赖框架,所以当在学习Golang的时候,自己便想着在Go开发中脱离框架,自己动手造框架来练习。通过学习借鉴Java的思想还有部分框架的源码,在golang上面进行实现,从而达到对Java和Golang的同时学习目的,这就很美滋滋了。
1341 0
|
缓存 NoSQL
golang实现自定义驱动的Cache
近期在写 ActivedRouter项目的时候需求一个缓存模型,要求缓存模型支持不同驱动,例如:memory、file、redis、mysql,实现思路代码如下: cache.go文件,定义缓存对外接口 //ActivedRouter //Author:usher.
1124 0