klaasie / scout-solr-engine
Apache Solr 驱动程序,用于 Laravel Scout
Requires
- php: ^8.0
- ext-json: *
- laravel/scout: ^9.0|^10.0
- solarium/solarium: ^6.2
Requires (Dev)
- orchestra/testbench: ^6.21|^7.0|^8.0|^9.0
- phpmd/phpmd: ^2.10
- phpunit/phpunit: ^9.3.3|^10.1
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-10-01 00:10:42 UTC
README
此包为 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,了解如何启动它。