Laravel Scout的collection方法能否用于生产环境?实际表现如何?
collection驱动生产环境使用说明
驱动核心逻辑
Laravel Scout 提供的collection驱动本质上不会和你当前对接的 Meilisearch 服务产生任何交互,所有搜索请求都会直接从对应模型的数据库查询结果集合上执行简单模糊匹配,无需依赖外部搜索引擎服务。
你的场景完全可以在生产使用
结合你给出的索引数据规模,生产环境直接使用collection驱动不存在性能问题,已经有很多小型项目在生产实践过这套方案:
- 年增量不超过10000条的索引,哪怕累计运行多年总数据量也只有几万条,集合搜索的内存和CPU开销可以忽略不计
- 月增量不超过30000条的索引,就算连续运行1年总数据也不足40万条,只要没有特殊的搜索需求,
collection驱动的响应速度完全能满足生产要求
不建议使用的场景
如果存在以下情况,还是建议继续使用 Meilisearch 驱动:
- 需要用到拼写纠错、字段加权排序、同义词匹配、地理位置搜索、分词优化等专业搜索引擎才支持的高级特性,
collection驱动的简单模糊匹配无法实现这类能力 - 后续业务规模扩张,数据量有可能突破百万级,或者搜索接口的访问QPS较高,
collection驱动本质是全表查询后做匹配,性能会随数据量上涨快速下降 - 搜索逻辑需要组合大量筛选条件,
collection的匹配效率会远低于专门的搜索引擎服务
内容的提问来源于stack exchange,提问作者Орлов Владлен
相关产品推荐
相关产品推荐

