klaasie/scout-solr-engine

Apache Solr 驱动程序,用于 Laravel Scout

V3.0.0 2024-04-30 19:01 UTC

README

GitHub issues Latest Stable Version License PHP Version Require

此包为 Laravel Scout 内的 Apache Solr 搜索引擎提供了一个基本实现。

安装

composer require klaasie/scout-solr-engine

配置

此包提供了一个可以通过 .env 变量修改的配置文件。
您可以使用以下命令初始化自己的配置文件:

php artisan vendor:publish --provider="Scout\Solr\ScoutSolrServiceProvider"

scout:index

默认情况下,Solr 不允许在没有在文件系统上提供适当的文件夹和文件之前创建索引(核心)。但是,如果 Solr 实例中设置了默认配置集,则可以通过 API 实现这一点。
scout:index 命令仅在 Solr 实例配置正确且配置文件具有对应配置集文件夹的名称时才有效。有关更多信息,请参阅 https://solr.apache.ac.cn/guide/8_9/config-sets.html#config-sets

核心(索引)

在配置文件中未提供核心(索引)。引擎将使用模型上的 searchableAs() 方法确定连接到哪个核心。

或者,如果特定模型位于不同的 Solr 实例上,可以为该模型提供另一种配置。配置密钥与模型的 searchableAs() 相匹配是很重要的。

Solarium

此包使用 solarium/solarium 来处理对 Solr 实例的请求。这个应用程序旨在为 laravel/scout 引擎提供一个简单的实现。对于对 Solr 实例的复杂查询,建议初始化自己的 Solarium 客户端并使用该包。请访问 https://solarium.readthedocs.io/en/stable/ 查看 solarium 包的文档。

为了方便,任何在引擎上使用的未知方法都将转发到 Solarium 客户端。

$model = new \App\Models\SearchableModel();

/** @var \Scout\Solr\Engines\SolrEngine $engine */
$engine = app(\Laravel\Scout\EngineManager::class)->engine();
$select = $engine->setCore($model)->createSelect();
$select->setQuery('*:*');
$result = $engine->select($select, $engine->getEndpointFromConfig($model->searchableAs())); // getEndpointFromConfig() is only necessary when your model does not use the default solr instance.

事件

Solr 引擎触发多个事件,允许您在引擎的特定点上挂钩。

示例

此存储库提供了一个展示此包功能的示例 Laravel 应用。
请参阅示例应用的 README.md,了解如何启动它。