You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Scout Extended的customRanking中使用枚举字段?

Laravel Scout Extended中枚举字段用于customRanking的可行方案

可以将这个存储整数字符串的枚举字段用于customRanking,但需要确保Algolia索引中该字段被识别为数值类型,具体操作如下:

  1. 在模型中转换字段类型
    在对应模型的toSearchableArray方法里,把枚举字段转为整数后再同步到Algolia。假设你的枚举字段名为priority,代码示例:

    public function toSearchableArray()
    {
        $array = $this->toArray();
        // 将枚举字符串转为整数
        $array['priority'] = (int)$this->priority;
        return $array;
    }
    
  2. 重新同步数据到Algolia
    由于之前同步的是字符串类型数据,需要执行命令重新导入数据,确保Algolia识别字段为数值:

    php artisan scout:import "App\Models\YourModel"
    

    后续新增或更新的数据会自动按转换后的整数同步。

  3. 配置customRanking规则
    完成上述步骤后,就可以像普通数值字段一样在config/scout.php中配置排序规则:

    'customRanking' => [
        'desc(priority)',
        'desc(completed_at)',
        'desc(created_at)',
    ],
    

这种方式不需要修改数据库的枚举字段类型,完全兼容已有业务数据,同时满足Algolia customRanking对数值类型的要求。

内容的提问来源于stack exchange,提问作者Petro Gromovo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:12:09