ElasticsearchProvider.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Search\Providers;
  3. use App\Search\Engines\ElasticsearchEngine;
  4. use Elasticsearch\ClientBuilder;
  5. use Illuminate\Support\ServiceProvider;
  6. use Laravel\Scout\EngineManager;
  7. use Monolog\Handler\StreamHandler;
  8. use Monolog\Logger;
  9. class ElasticsearchProvider extends ServiceProvider
  10. {
  11. /**
  12. * Bootstrap the application services.
  13. *
  14. * @return void
  15. */
  16. public function boot()
  17. {
  18. resolve(EngineManager::class)->extend('elasticsearch', function () {
  19. $logger = new Logger('elasticsearch');
  20. $logger->pushHandler(new StreamHandler(storage_path('logs/elasticsearch/search.log'), Logger::CRITICAL));
  21. return new ElasticsearchEngine(
  22. ClientBuilder::create()
  23. ->setHosts(config('scout.elasticsearch.host'))
  24. ->setLogger($logger)
  25. ->build()
  26. );
  27. });
  28. }
  29. /**
  30. * Register the application services.
  31. *
  32. * @return void
  33. */
  34. public function register()
  35. {
  36. //
  37. }
  38. }