Heim > Backend-Entwicklung > PHP-Tutorial > Wie baut man mit PHP Elasticsearch eine leistungsstarke Suchmaschine auf?

Wie baut man mit PHP Elasticsearch eine leistungsstarke Suchmaschine auf?

WBOY
Freigeben: 2023-09-13 08:24:01
Original
1088 Leute haben es durchsucht

如何使用php Elasticsearch构建高性能的搜索引擎?

Wie baut man mit PHP Elasticsearch eine leistungsstarke Suchmaschine auf?

Da die Datenmenge immer weiter wächst, wird der Aufbau einer leistungsstarken Suchmaschine immer wichtiger. Elasticsearch ist eine leistungsstarke und dennoch benutzerfreundliche Open-Source-Such- und Analysemaschine und eines der bevorzugten Tools zum Aufbau leistungsstarker Suchmaschinen. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP-Elasticsearch-Bibliothek eine leistungsstarke Suchmaschine erstellen, und es werden detaillierte Codebeispiele aufgeführt.

  1. Elasticsearch installieren

Zuerst müssen wir den Elasticsearch-Server installieren. Sie können die für Ihr Betriebssystem geeignete Version von der offiziellen Website von Elasticsearch herunterladen und installieren. Starten Sie nach Abschluss der Installation den Elasticsearch-Server.

  1. Installieren Sie die PHP-Elasticsearch-Bibliothek.

Als nächstes müssen wir die PHP-Elasticsearch-Bibliothek in unserem PHP-Projekt installieren. Mit Composer können PHP-Abhängigkeiten verwaltet werden. Erstellen Sie eine Composer.json-Datei in Ihrem Projektstammverzeichnis und fügen Sie den folgenden Code hinzu:

{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}
Nach dem Login kopieren

Führen Sie dann den Befehl composer install aus, um die PHP-Elasticsearch-Bibliothek zu installieren.

  1. Mit dem Elasticsearch-Server verbinden

Sobald wir die PHP-Elasticsearch-Bibliothek installiert haben, können wir eine Verbindung zum Elasticsearch-Server herstellen. Verwenden Sie in Ihrer PHP-Datei den folgenden Code, um eine Elasticsearch-Client-Instanz zu erstellen:

<?php

require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$client = ClientBuilder::create()->build();
Nach dem Login kopieren
  1. Indizes erstellen

Indizes sind die logischen Strukturen, die in Elasticsearch zum Speichern und Organisieren von Daten verwendet werden. Wir müssen in Elasticsearch einen neuen Index erstellen, um unsere Daten zu speichern. Verwenden Sie den folgenden Code, um einen Index mit dem Namen „my_index“ zu erstellen:

$params = [
    'index' => 'my_index'
];

$response = $client->indices()->create($params);
Nach dem Login kopieren
  1. Dokumente hinzufügen

Sobald wir den Index erstellt haben, können wir damit beginnen, Dokumente zum Index hinzuzufügen. Ein Dokument ist die kleinste Speichereinheit in Elasticsearch. Fügen Sie ein neues Dokument mit dem folgenden Code hinzu:

$params = [
    'index' => 'my_index',
    'body' => [
        'title' => 'Example Document',
        'content' => 'This is an example document',
        'tags' => ['example', 'document']
    ]
];

$response = $client->index($params);
Nach dem Login kopieren
  1. Suchen

Da wir das Dokument nun zum Index hinzugefügt haben, können wir mit der Suche beginnen. Verwenden Sie den folgenden Code, um eine einfache Suchabfrage durchzuführen:

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

$response = $client->search($params);
Nach dem Login kopieren

Dadurch werden Dokumente zurückgegeben, die den Suchkriterien entsprechen.

  1. Weitere Funktionen hinzufügen

Zusätzlich zu den grundlegenden Suchfunktionen unterstützt Elasticsearch auch erweiterte Suchfunktionen wie Aggregation, Filter und Sortierung. Hier ist ein Beispielcode:

  • Führen Sie eine aggregierte Abfrage aus:
$params = [
    'index' => 'my_index',
    'body' => [
        'aggs' => [
            'by_tag' => [
                'terms' => [
                    'field' => 'tags'
                ]
            ]
        ]
    ]
];

$response = $client->search($params);
Nach dem Login kopieren

Dadurch werden aggregierte Ergebnisse nach Tags gruppiert zurückgegeben.

  • Filter hinzufügen:
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    'match' => ['content' => 'example']
                ],
                'filter' => [
                    'range' => [
                        'date' => [
                            'gte' => '2021-01-01'
                        ]
                    ]
                ]
            ]
        ]
    ]
];

$response = $client->search($params);
Nach dem Login kopieren

Dadurch werden Dokumente zurückgegeben, die den Suchkriterien entsprechen und ein Datum haben, das größer oder gleich dem 1. Januar 2021 ist.

  • Sortierung hinzufügen:
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => ['content' => 'example']
        ],
        'sort' => [
            'date' => 'desc'
        ]
    ]
];

$response = $client->search($params);
Nach dem Login kopieren

Dadurch werden Dokumente nach Datum in absteigender Reihenfolge sortiert zurückgegeben.

Durch die oben genannten Schritte haben wir mithilfe der PHP-Elasticsearch-Bibliothek eine einfache Suchmaschine erstellt und einige gängige erweiterte Suchfunktionen hinzugefügt. Sie können es je nach Bedarf weiter ausbauen und optimieren. Ich hoffe, dieser Artikel hat Ihnen bei der Entwicklung leistungsstarker Suchmaschinen geholfen.

Das obige ist der detaillierte Inhalt vonWie baut man mit PHP Elasticsearch eine leistungsstarke Suchmaschine auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage