Heim >PHP-Framework >Denken Sie an PHP >So verwenden Sie Elasticsearch mit ThinkPHP6

So verwenden Sie Elasticsearch mit ThinkPHP6

王林
王林Original
2023-06-20 12:09:392858Durchsuche

Im aktuellen Internetzeitalter, mit dem explosionsartigen Wachstum riesiger Datenmengen, sind Suchmaschinen immer wichtiger geworden. Als hoch skalierbare Volltextsuchmaschine ist Elasticsearch für Entwickler nach und nach zur ersten Wahl für die Lösung von Suchproblemen geworden.
In diesem Artikel erfahren Sie, wie Sie Elasticsearch in ThinkPHP6 verwenden, um Datenabruf- und Suchfunktionen zu implementieren. Lassen Sie uns beginnen.

Schritt eins: Elasticsearch-php installieren.
Verwenden Sie Composer, um die offizielle Elasticsearch-php-Bibliothek zu installieren Hier gibt es kein Passwort. Sie müssen ein Passwort hinzufügen und bei der Online-Bereitstellung eine Verbindung über https herstellen, um sicherzustellen, dass die Verbindung sicher ist.

Schritt 2: Laravel-Scout installieren

Laravel-Scout ist ein Eloquent ORM-Volltextsucherweiterungspaket für Laravel. Wir müssen es in ThinkPHP6 installieren, um die Elasticsearch-Integration zu erreichen:

composer require elasticsearch/elasticsearch

Schritt 3 :Paket laravel-scout-elastic installieren

In ThinkPHP6 müssen wir das Erweiterungspaket laravel-scout-elastic verwenden, um eine Verbindung mit Elasticsearch herzustellen. Verwenden Sie zum Installieren in ähnlicher Weise den folgenden Befehl:

return [
    'host' => ['your.host.com'],
    'port' => 9200,
    'scheme' => 'http',
    'user' => '',
    'pass' => ''
];

Scout und Elastic-Treiber in app.php konfigurieren

composer require laravel/scout

Konfigurieren Sie dann die Suchmaschine des Modells in configscout.php wie folgt:

composer require babenkoivan/scout-elasticsearch-driver:^7.0

Die obige Konfiguration zeigt, dass wir Verwenden Sie das Model: :class-Modellobjekt, um Daten abzurufen und den Indexnamen entsprechend dem Model::class-Objekt als model_index und den Typ als model_type zu definieren.

Schritt 4: Suchlogik definieren

Wir verwenden das Merkmal Searchable in der Model-Klasse und deklarieren eine öffentliche Funktion zur SearchableArray()-Funktion wie folgt:

return [
    'providers' => [
        //...
        LaravelScoutScoutServiceProvider::class,
        ScoutElasticsearchElasticsearchServiceProvider::class,
        //...
    ],
    'aliases' => [
        //...
        'Elasticsearch' => ScoutElasticsearchFacadesElasticsearch::class,
        //...
    ],
];

toSearchableArray()-Funktion wird verwendet, um durchsuchbare Datenfelder zurückzugeben, hier Beispiel zwei Felder sind gegeben: Titel und Inhalt.


Schritt 5: Suchbezogene API

Schließlich schreiben wir suchbezogene APIs, wie Suchergebnislisten, Suchstatistiken usw. Dies erfordert ein gewisses Verständnis der offiziellen Elasticsearch-API. Weitere Informationen finden Sie in der offiziellen Elasticsearch-Dokumentation.

Der Code der Suchergebnislisten-API könnte beispielsweise so aussehen:

'searchable' => [
        AppModelsModel::class => [
            'index' => 'model_index',
            'type' => 'model_type'
        ],
    ],

Der obige Code verwendet die von Elasticsearch offiziell bereitgestellte ElasticsearchClientBuilder-Klasse, um eine Verbindung herzustellen, Schlüsselwörter abzufragen und die Ergebnisliste abzurufen. Sie können

in dieser API durch ein beliebiges Schlüsselwort ersetzen.

Dieser Artikel endet hier. Ich glaube, dass Sie Elasticsearch grundsätzlich zur Implementierung von Suchfunktionen verwenden können. Wenn Sie in der Praxis auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder melden Sie ein Problem, um weitere Hilfe zu erhalten.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Elasticsearch mit ThinkPHP6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn