【问题标题】:MySQL ORDER BY FIELD equivalent in Redis searchRedis 搜索中的 MySQL ORDER BY FIELD 等效项
【发布时间】:2021-08-24 12:11:50
【问题描述】:

如何在 Redis 搜索中完成 MySQL 中可用的这种自定义按字段排序功能?

从产品 ORDER BY FIELD(id,3,2,1,4) 中选择 *

出于某种业务原因,我需要强制执行自定义订单。

【问题讨论】:

  • 你能提供一个你的redis数据结构的例子吗?你用的是什么redis数据类型?

标签: mysql search redis


【解决方案1】:

RediSearch 中不存在与 FIELD 功能等效的功能。

使用 FT.SEARCH / SORTBY,您可以使用字段对结果进行排序。 在您的哈希中,您可以创建一个新字段 (NUMERIC SORTABLE),其中包含一个用于对结果进行排序的值。当然,只有当您不想在每个查询上指定不同的顺序时,这才有效。

第二个选项:这可以通过使用具有适当功能的 FT.AGGREGATE 来处理。您可以查看existing function,看看是否可以使用它。如果该功能不存在,你可以做一个feature request

第三种选择是使用extension API 实现您自己的评分功能(但它可能过度工程......)

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 2020-08-25
    • 2010-11-21
    • 2011-11-18
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多