Heim  >  Artikel  >  Backend-Entwicklung  >  Entwicklungspraxis verwandter Suchfunktionen basierend auf Elasticsearch in PHP

Entwicklungspraxis verwandter Suchfunktionen basierend auf Elasticsearch in PHP

王林
王林Original
2023-10-03 09:07:41798Durchsuche

PHP 中基于 Elasticsearch 的相关搜索功能开发实践

Verwandte Suchfunktionsentwicklungspraxis basierend auf Elasticsearch in PHP

Übersicht
In der modernen Webentwicklung ist die Suchfunktion ein sehr wichtiger Bestandteil. Als leistungsstarke und flexible verteilte Suchmaschine wird Elasticsearch häufig in verschiedenen Webanwendungen eingesetzt. In diesem Artikel wird erläutert, wie Sie mit Elasticsearch in PHP verwandte Suchfunktionen entwickeln und spezifische Codebeispiele anhängen.

Installation und Konfiguration von Elasticsearch
Zuerst müssen wir Elasticsearch installieren und entsprechende Konfigurationen durchführen. Sie können die für Ihr Betriebssystem geeignete Version über die Download-Seite der offiziellen Website von Elasticsearch (https://www.elastic.co/cn/downloads/elasticsearch) auswählen und gemäß den offiziellen Installationsschritten installieren.

Nachdem die Installation abgeschlossen ist, müssen Sie die Elasticsearch-Konfigurationsdatei ändern elasticsearch.yml. Öffnen Sie diese Datei, suchen und ändern Sie die folgende Konfiguration:

cluster.name: my-cluster
node.name: my-node
network.host: 0.0.0.0
http.port: 9200

Elasticsearch PHP-Client verwenden
Um Elasticsearch in PHP verwenden zu können, müssen wir den Elasticsearch PHP-Client installieren. Es kann über Composer installiert werden. Der Befehl lautet wie folgt:

composer require elasticsearch/elasticsearch

Nach Abschluss der Installation können wir den folgenden Code verwenden, um einen Elasticsearch-Client in PHP zu initialisieren:

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

Index und Zuordnung erstellen
Bevor Sie Elasticsearch zum Suchen verwenden, Wir müssen zuerst den Index und die Einstellungszuordnung erstellen. Indizes sind wie Tabellen in einer Datenbank und Zuordnungen sind wie Felder in einer Tabelle. Jeder Index kann mehrere Zuordnungen haben.

Hier ist ein Beispiel für die Erstellung eines Index und der Zuordnung:

$params = [
    'index' => 'my_index',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => [
                    'type' => 'text',
                ],
                'content' => [
                    'type' => 'text',
                ],
                'created_at' => [
                    'type' => 'date',
                ],
            ],
        ],
    ],
];

$response = $client->indices()->create($params);

Dokumente zum Index hinzufügen
Sobald der Index erstellt ist, können wir Daten zum Index hinzufügen, damit dieser durchsucht werden kann. Hier ist ein Beispiel für das Hinzufügen von Dokumenten zum Index:

$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'title' => 'Elasticsearch 示例文章',
        'content' => '这是一个关于Elasticsearch的示例文章。',
        'created_at' => '2022-01-01',
    ],
];

$response = $client->index($params);

Nach Dokumenten suchen
Wenn der Index und die Daten vorhanden sind, können wir Suchvorgänge durchführen. Das Folgende ist ein einfaches Beispiel für eine Volltextsuche:

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'content' => 'Elasticsearch',
            ],
        ],
    ],
];

$response = $client->search($params);

Der obige Code gibt alle Dokumente zurück, die das Schlüsselwort „Elasticsearch“ im Inhalt enthalten.

Aggregation und Filterung
Neben der einfachen Volltextsuche bietet Elasticsearch auch leistungsstarke Aggregations- und Filterfunktionen. Hier ist ein Beispiel:

$params = [
    'index' => 'my_index',
    'body' => [
        'aggs' => [
            'avg_views' => [
                'avg' => [
                    'field' => 'views',
                ],
            ],
        ],
        'query' => [
            'term' => [
                'category' => 'technology',
            ],
        ],
    ],
];

$response = $client->search($params);

Der obige Code gibt die durchschnittliche Anzahl der Aufrufe in Dokumenten zurück, die als „Technologie“ klassifiziert sind.

Zusammenfassung
Dieser Artikel stellt vor, wie man Elasticsearch in PHP verwendet, um verwandte Suchfunktionen zu entwickeln. Wir führen die Installation und Konfiguration von Elasticsearch durch, verwenden den Elasticsearch-PHP-Client, erstellen Indizes und Zuordnungen und fügen dem Index Dokumente hinzu. Darüber hinaus demonstrieren wir die Verwendung einfacher Volltextsuche und Aggregatfilterfunktionen. Der obige Beispielcode dient nur als Referenz und muss entsprechend den spezifischen Anforderungen in tatsächlichen Projekten angepasst werden.

Ich hoffe, dieser Artikel kann Ihnen helfen, die relevanten Suchfunktionen basierend auf Elasticsearch in PHP zu verstehen und zu verwenden.

Das obige ist der detaillierte Inhalt vonEntwicklungspraxis verwandter Suchfunktionen basierend auf Elasticsearch in PHP. 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