Laravel/Scout 集成Meilisearch引擎时如何获取文档总数量
Laravel Scout + Meilisearch 获取索引总文档数方案
当然可以获取对应索引的文档总数量,常用两种实现方式:
方式1:使用Laravel Scout原生封装方法
适用于需要和业务查询逻辑保持一致的统计场景,返回结果会自动适配你给模型配置的Scout全局过滤规则(比如软删除排除、自定义全局查询条件):
- 调用示例:
\App\Models\你的模型类::search('')->count() - 说明:传入空搜索关键词会匹配索引下所有符合过滤规则的文档,直接返回统计总数。
方式2:调用Meilisearch底层客户端获取原始总数
适用于需要统计索引内全部实际存储文档的场景,不受Scout端任何过滤规则影响:
- 调用代码:
// 获取Meilisearch引擎实例 $meilisearchEngine = app(\Laravel\Scout\EngineManager::class)->engine(); // 传入对应索引名获取统计数据,索引名和你模型的searchableAs配置一致 $indexStats = $meilisearchEngine->index('你的索引名')->stats(); // 原始总文档数 $totalCount = $indexStats['numberOfDocuments'];
内容的提问来源于stack exchange,提问作者Mwthreex
相关产品推荐
相关产品推荐

