跳转到内容

按索引字段排序

从RedSearch 0.15开始,可以绕过评分功能机制,直接根据不同文档属性(字段)的值对搜索结果排序,即使查询不使用排序字段。例如,您可以搜索名字并按姓氏排序。

声明可排序字段

使用创建索引时创建,你可以申报正文数字的待售物业可恶的. 当属性是可排序的时,我们可以稍后决定按其值对结果排序。例如,在以下模式中:

>FT.CREATE users SCHEMA first_name TEXT last_name TEXT可排序年龄数字可排序

田野年龄是可以排序的,但是名字不是。这意味着我们可以按名字和/或姓氏进行搜索,并按姓氏或年龄进行排序。

关于可排序文本字段的说明

在当前的实现中,当声明一个可排序字段时,其内容会被复制到索引中的一个特殊位置,以便在排序时快速访问。这意味着使长文本字段可排序非常昂贵,您应该小心使用。

标准化(UNF选项)

默认情况下,文本字段在存储以进行排序时以Unicode安全的方式进行规范化和小写。这意味着美国美国在排序方面被认为是相等的。

使用参数UNF(非规范化形式)可以禁用规范化并保留值的原始形式。所以,,美国将在之前到达美国.

指定排序

如果索引包含可排序字段,则可以添加肮脏的参数添加到搜索请求(在查询体外部),并按其对结果排序。这会覆盖计分功能机制,且两者不能结合。如果带芯与一起指定肮脏的,返回的分数只是每个结果在结果集中的相对位置。

的语法肮脏的是:

排序方式{field_name}[ASC|DESC]
  • 字段名称必须是架构中定义的可排序字段。

  • ASC意味着顺序将上升,描述它会下降。

  • 默认顺序是ASC除非另有规定。

快速示例

>英尺.创造使用者模式名字正文可恶的正文年龄数字的可恶的#添加一些使用者>英尺.添加使用者用户11领域名字“爱丽丝”“琼斯”年龄35>英尺.添加使用者用户21领域名字“鲍勃”“琼斯”年龄36#搜索虽然分类#搜索通过最后的名称分类通过第一名称>英尺.搜寻使用者“@姓:琼斯”肮脏的名字描述#搜索通过二者都第一最后的名称,分类通过年龄>英尺.搜寻使用者“爱丽丝·琼斯”肮脏的年龄ASC
Baidu