Laravel Scout 的 ElasticSearch 驱动程序
最后更新于 作者: Paul Redmond
Explorer 是一个下一代的 Elasticsearch 驱动程序,用于 Laravel Scout,它拥有 Elasticsearch 查询功能。它提供了一个兼容的 Scout 驱动程序,以及额外的便利。例如,Explored
接口定义了一个 mappableAs()
方法,用于获取配置
namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;use JeroenG\Explorer\Application\Explored;use Laravel\Scout\Searchable; class Post extends Model implements Explored{ use HasFactory; use Searchable; protected $fillable = ['title', 'published']; public function mappableAs(): array { return [ 'id' => 'keyword', 'title' => 'text', 'published' => 'boolean', 'created_at' => 'date', ]; }}
然后在您的 explorer 配置中,您可以像这样引用索引下的模型
return [ 'indexes' => [ \App\Models\Post::class ],];
除了 Laravel Scout 开箱即用的标准功能外,Explorer 还提供了一种使用查询构建器来编写更复杂查询的方法。在 高级查询 文档中,有一个使用此包的查询构建器功能的示例
$posts = Post::search('lorem') ->must(new Matching('title', 'ipsum')) ->should(new Terms('tags', ['featured'], 2)) ->filter(new Term('published', true)) ->get();
该包还提供了一些命令,用于通过 CLI 管理索引和搜索
# create indexesphp artisan elastic:create # delete indexesphp artisan elastic:delete # search indexesphp artisan elastic:search "App\Models\Post" lorem
了解更多
在 Explorer 文档 中,您可以了解从入门设置到更高级的设置和代码的整个过程。在 源代码 中可以在 GitHub 上找到。
此外,请查看 使用 Laravel Scout 探索 Elasticsearch ,其中解释了如何通过 Docker 在本地启动 Elasticsearch 以及如何设置 Explorer 和 Laravel Scout。
该包的作者还有一个 演示应用程序 ,它可能有助于探索如何在您的 Laravel 应用程序中集成 Explorer。