Search by

baijunyao / laravel-scout-elasticsearch

baijunyao

Elasticsearch Driver for Laravel Scout

Package info

github.com/baijunyao/laravel-scout-elasticsearch

pkg:composer/baijunyao/laravel-scout-elasticsearch

Statistics

Installs: 23 968

Dependents: 1

Suggesters: 0

Stars: 79

Open Issues: 4

v6.0.0 2026-10-29 12:26 UTC

This package is auto-updated.

Last update: 2026-10-29 12:27:33 UTC


README

介绍

为 Laravel Scout 开发的 Elasticsearch 驱动; 之所以造这个轮子是因为 laravel-scout-elastic 不支持中文分词且不支持多张表;
而 Elasticquent 这种不基于 scout 的又略麻烦;

文档

详细文档

兼容性

  • 支持 Laravel 7–13,Laravel 13 要求 PHP 8.3+。
  • 支持 Scout 7.1–11;已适配 Scout 11 的条件结构和比较操作符。
  • Elasticsearch PHP 客户端仍支持 6.x / 7.x;本次不包含 Elasticsearch 8.x / 9.x 升级。
  • 支持 cursor() 延迟读取模型,模型会在迭代时按搜索结果顺序一次性载入,并非逐行数据库游标。

索引沿用 scout.elasticsearch.prefix 配置。创建、删除索引时传入未加此前缀的名称:

php artisan scout:index articles
php artisan scout:delete-index articles

直接调用引擎的 createIndex($name, $options) 时,$options 为 Elasticsearch 创建索引的请求体(如 settings、mappings);不支持 scout:index --key。

开发验证

测试环境使用 Laravel 13、Testbench 11 和 PHPUnit 11,要求 PHP 8.3+ 及 SQLite 扩展:

composer install
composer test

测试使用模拟的 Elasticsearch 客户端,不依赖 Elasticsearch 服务;真实服务及中文分词插件需在应用环境中另行验证。

教程

链接