Vorne geschrieben
Elasticsearch (im Folgenden als es bezeichnet) ist eine verteilte Such- und Analysemaschine in Echtzeit.
In Bezug auf Suchmaschinen gibt es nicht nur Elasticsearch, sondern auch Algolia, das in einem anderen Artikel erwähnt wurde, sowie Sphinx, Solr usw. In diesem Artikel wird hauptsächlich die Vorgehensweise vorgestellt Verwenden Sie Elasticsearch in Laravel.
Elasticsearch muss zuerst installiert werden.
Dieser Artikel basiert auf Laravel5.5, andere Versionen sind ähnlich.
Vorbereitung
Abhängige Pakete über Composer installieren
composer require laravel/scout composer require tamayo/laravel-scout-elastic
Grundkonfiguration
In config/app hinzufügen der Dienstanbieter zum Provider-Array in der .php-Datei
// config/app.php 'providers' => [ // ... Laravel\Scout\ScoutServiceProvider::class, // ... ScoutEngines\Elasticsearch\ElasticsearchProvider::class, ],
Verwenden Sie den folgenden Befehl, um die Scout-Konfigurationsdatei zu generieren
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
Fügen Sie die Elasticsearch-Konfiguration zu config/scout.php hinzu
'elasticsearch' => [ 'index' => env('ELASTICSEARCH_INDEX', 'laravel'), 'hosts' => [ env('ELASTICSEARCH_HOST', 'http://localhost:9200'), ], ],
Dann öffnen wir die .env-Datei und fügen die Konfiguration von Scout und Elasticsearch hinzu
# scout配置 SCOUT_DRIVER=elasticsearch SCOUT_PREFIX= # elasticsearch 配置 ELASTICSEARCH_INDEX=esdemo # elasticsearch 地址 ELASTICSEARCH_HOST=http://172.30.6.1:9200
Erstellen Sie den Index
Erstellen Sie das Modell und füllen Sie das aus Daten
Erstellen Sie die Modell-App/Student.php, um spätere Tests zu erleichtern. Sie können Daten manuell mithilfe von SQL-Anweisungen hinzufügen oder Laravel zum automatischen Migrieren und Ausfüllen verwenden Daten.
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Laravel\Scout\Searchable; /** * 学生模型 */ class Student extends Model { use Searchable; /** * 索引名称 * * @return string */ public function searchableAs() { return 'students_index'; } /** * 可搜索的数据索引 * * @return array */ public function toSearchableArray() { $array = $this->toArray(); // Customize array... return $array; } }
Alle vorhandenen Datensätze in den Suchindex importieren
php artisan scout:import "App\Student"
War der Import erfolgreich?
php artisan scout:import "App\Student" Imported [App\Student] models up to ID: 500 Imported [App\Student] models up to ID: 1000 Imported [App\Student] models up to ID: 1500 Imported [App\Student] models up to ID: 2000 Imported [App\Student] models up to ID: 2500 Imported [App\Student] models up to ID: 3000 Imported [App\Student] models up to ID: 3500 Imported [App\Student] models up to ID: 4000 Imported [App\Student] models up to ID: 4500 Imported [App\Student] models up to ID: 5000 Imported [App\Student] models up to ID: 5500 Imported [App\Student] models up to ID: 6000 Imported [App\Student] models up to ID: 6500 Imported [App\Student] models up to ID: 7000 Imported [App\Student] models up to ID: 7500 Imported [App\Student] models up to ID: 8000 Imported [App\Student] models up to ID: 8500 Imported [App\Student] models up to ID: 9000 Imported [App\Student] models up to ID: 9500 Imported [App\Student] models up to ID: 10000 All [App\Student] records have been imported.
Wir besuchen es, http://172.30.6.1:9200/esdemo/students_index/_search
Haben Sie bereits die Indexdaten des Students_index, die Sie gerade importiert haben?
Fertig
$studens = App\Student::search('成燕')->get(); dd($studens);
Sie können versuchen, Millionen von Daten einzugeben. Ist die Abrufgeschwindigkeit viel schneller als die direkte Abfrage der Datenbank?
Weitere Informationen zur Verwendung finden Sie in der offiziellen Dokumentationhttps://www.elastic.co/guide/...
Weitere technische Artikel zu Laravel finden Sie unter Bitte besuchen Sie die Spalte Einführungs-Tutorial zum Laravel-Framework, um mehr zu erfahren!
Das obige ist der detaillierte Inhalt vonVerwendung von Scout zur Integration der Elasticsearch-Suchmaschine in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!