Heim Backend-Entwicklung PHP-Tutorial So verwenden Sie Elasticsearch zur Implementierung von Suchfunktionen in der PHP-Entwicklung

So verwenden Sie Elasticsearch zur Implementierung von Suchfunktionen in der PHP-Entwicklung

Jun 27, 2023 pm 12:59 PM
php elasticsearch 搜索功能

Mit der Entwicklung des Internets hat die Bedeutung von Suchmaschinen immer mehr an Bedeutung gewonnen. Suchmaschinen müssen nicht nur in der Lage sein, schnell nach relevanten Inhalten zu suchen, sondern auch effizient, stabil und skalierbar zu sein. Als beliebte verteilte Suchmaschine ist Elasticsearch für viele Unternehmen zur ersten Wahl im Suchbereich geworden. In diesem Artikel wird erläutert, wie Sie die PHP-Entwicklung verwenden und mit Elasticsearch kombinieren, um Suchfunktionen zu implementieren.

  1. Elasticsearch installieren

Bevor wir beginnen, müssen wir zuerst Elasticsearch installieren. Elasticsearch ist eine Java-Anwendung, daher müssen wir zuerst Java installieren und die komprimierte Datei von Elasticsearch herunterladen. Entpacken Sie dann die Datei in das angegebene Verzeichnis.

  1. Erstellen Sie einen Index

Das Erstellen eines Index ist der erste Schritt beim Speichern der Dokumente, die wir in Elasticsearch durchsuchen möchten. Normalerweise können wir uns einen Index als eine Tabelle in einer Datenbank vorstellen, die aus einer Reihe von Dokumenten (Datenzeilen) besteht.

In PHP können wir den Elasticsearch-PHP-Client verwenden, um mit Elasticsearch zu interagieren. Sie müssen zuerst das Elasticsearch-PHP-Paket installieren:

Composer erfordert Elasticsearch/Elasticsearch

Das Folgende ist ein Beispielcode zum Erstellen eines Index:

require 'vendor/autoload.php';

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

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0,
        ],
        'mappings' => [
            'my_type' => [
                'properties' => [
                    'title' => [
                        'type' => 'text'
                    ],
                    'content' => [
                        'type' => 'text'
                    ],
                    'post_date' => [
                        'type' => 'date',
                        'format' => 'yyyy-MM-dd HH:mm:ss'
                    ]
                ]
            ]
        ]
    ]
];

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

Im obigen Code erstellen wir einen Index mit dem Namen „my_index“ und definieren einen Index mit dem Namen „my_type“ Typ. Wir haben drei Felder unter dem Typ „my_type“ definiert: Titel, Inhalt und Post_Datum.

  1. Dokumente zum Index hinzufügen

Nachdem wir den Index erstellt haben, müssen wir Dokumente zum Index hinzufügen, die bei der Suche relevante Ergebnisse liefern.

Zum Beispiel fügen wir einen Artikel mit dem Titel „PHP-Entwicklungspraxis“ hinzu:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'title' => 'PHP开发实战',
        'content' => '本文介绍如何在PHP中使用Elasticsearch实现搜索功能。',
        'post_date' => date('Y-m-d H:i:s')
    ]
];

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

Die Suche ist eine der grundlegendsten und am häufigsten verwendeten Funktionen von Elasticsearch. Elasticsearch unterstützt eine Vielzahl von Abfragemethoden, darunter:

  • Einfache Zeichenfolgenabfrage
  • Zusammengesetzte Abfrage
  • Bereichsabfrage
  • Abfrage nach genauen Werten
  • Abfrage mit regulären Ausdrücken
  • Fuzzy-Abfrage
  • Aggregationsabfrage und mehr

Das Folgende ist Ein einfaches Suchbeispiel, das Text- und Datumsbereichsbedingungen verwendet:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    [
                        'match' => [
                            'title' => 'PHP'
                        ]
                    ],
                    [
                        'range' => [
                            'post_date' => [
                                'gte' => '2021-01-01 00:00:00',
                                'lte' => '2021-01-31 23:59:59'
                            ]
                        ]
                    ]
                ]
            ]
        ]
    ]
];

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

Im obigen Code verwenden wir „Match“- und „Range“-Abfragen, um nach Artikeln zu suchen, die „PHP“ im Titel enthalten und in den Ergebnissen 2021 innerhalb von 1 veröffentlicht werden Monat.

  1. Ergebnisverarbeitung

Schließlich müssen wir die Suchergebnisse an PHP zurückgeben und sie für die endgültige Präsentation für den Benutzer verarbeiten.

$hits = $response['hits']['hits'];
foreach ($hits as $hit) {
    echo $hit['_source']['title'] . "
";
    echo $hit['_source']['content'] . "
";
    echo $hit['_source']['post_date'] . "
";
}
Nach dem Login kopieren

Im obigen Code durchlaufen wir jedes Dokument im Suchergebnissatz und geben den Titel, den Inhalt und das Veröffentlichungsdatum des Dokuments aus.

Zusammenfassung

Dieser Artikel stellt vor, wie man PHP in Kombination mit Elasticsearch verwendet, um Suchfunktionen zu implementieren. Durch das Studium dieses Artikels erfahren Sie mehr über grundlegende Vorgänge wie das Erstellen von Indizes, das Hinzufügen von Dokumenten, das Durchsuchen von Daten und das Verarbeiten von Ergebnissen. Natürlich verfügt Elasticsearch auch über viele Verwendungstechniken wie Aggregationsabfrage, Hervorhebung, Sortierung usw. Diese Techniken können uns dabei helfen, Elasticsearch besser für die Implementierung von Suchfunktionen zu nutzen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Elasticsearch zur Implementierung von Suchfunktionen in der PHP-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

CakePHP-Protokollierung CakePHP-Protokollierung Sep 10, 2024 pm 05:26 PM

Die Anmeldung bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die Funktion log() wird bereitgestellt

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.

See all articles