So erstellen Sie eine Volltextsuchmaschine mit PHP und Elasticsearch
Volltextsuchmaschinen spielen im modernen Internet eine wichtige Rolle und ermöglichen Benutzern das schnelle Auffinden von Informationen, die ihren Anforderungen entsprechen. Eine gute Volltextsuchmaschine muss nicht nur schnell suchen, sondern auch qualitativ hochwertige Suchergebnisse liefern. In diesem Artikel erfahren Sie, wie Sie mit PHP und Elasticsearch eine Volltextsuchmaschine erstellen.
Was ist Elasticsearch?
Elasticsearch ist eine Open-Source-Suchmaschine, die auf der Lucene-Suchmaschinenbibliothek basiert. Es bietet eine verteilte, mandantenfähige Volltextsuchmaschine und ist in der Lage, große Datenmengen automatisch zu verarbeiten. Elasticsearch kann Daten schnell durchsuchen und analysieren und unterstützt die Echtzeitsuche, was bedeutet, dass Elasticsearch bei Aktualisierung der Daten innerhalb von Millisekunden Suchergebnisse aus neuen Daten zurückgeben kann.
Elasticsearch unterstützt eine Vielzahl von Datentypen, darunter Text, numerische Werte, Datumsangaben, geografische Standorte usw. Durch den Einsatz von Elasticsearch können wir schnell eine Volltextsuchmaschine erstellen und diese an unterschiedliche Anforderungen anpassen.
Herstellen einer Verbindung zu Elasticsearch über PHP
Um eine Verbindung zu Elasticsearch über PHP herzustellen, müssen wir die Elasticsearch-PHP-Clientbibliothek installieren. Der einfachste Weg, diese Bibliothek zu installieren, ist die Verwendung von Composer, der mit dem folgenden Befehl installiert werden kann:
composer require elasticsearch/elasticsearch
Nach Abschluss der Installation referenzieren Sie diese Bibliothek im Code:
require 'vendor/autoload.php'; use ElasticsearchClientBuilder;
'hosts' => ['localhost:9200']
'index' => 'articles', 'body' => [ 'mappings' => [ 'article' => [ 'properties' => [ 'title' => ['type' => 'text'], 'author' => ['type' => 'text'], 'publish_date' => ['type' => 'date'], 'body' => ['type' => 'text'] ] ] ] ]
aufrufen: index
'index' => 'articles', 'type' => 'article', 'id' => 1, 'body' => [ 'title' => '如何使用PHP和Elasticsearch构建全文搜索引擎', 'author' => 'John Doe', 'publish_date' => '2020-01-01', 'body' => '全文搜索引擎在现代互联网中扮演着重要的角色……' ]
];
$client->index($params);
Hier geben wir den zu indizierenden „Artikel“-Index an und „ Artikeltyp unter Verwendung einer eindeutigen ID. Bei der Indizierung von Daten schreiben wir die Daten in Elasticsearch, indizieren sie und machen sie durchsuchbar.
Daten abfragen
Um Daten abzufragen, müssen wir eine Abfrageanforderung erstellen und diese an den Elasticsearch-Server senden. Wir können eine Match-Abfrage verwenden, die Schlüsselwörter in Feldern abgleicht. Zum Beispiel:
$query = [
'match' => [ 'title' => 'Elasticsearch' ]
];
$params = [
'index' => 'articles', 'type' => 'article', 'body' => [ 'query' => $query ]
];# 🎜 🎜#
$response = $client->search($params);Hier fragen wir alle Dateien vom Typ „article“ im „articles“-Index ab, die den „title“ enthalten „Felddokument und das Feld „Titel“ enthält das Schlüsselwort „Elasticsearch“. Elasticsearch unterstützt auch viele andere Arten von Abfragen, wie zum Beispiel boolesche Abfragen, Bereichsabfragen, Präfixabfragen und mehr. Das Verständnis aller Abfragetypen und deren Verwendung kann dazu führen, dass Suchmaschinen besser an unterschiedliche Datentypen angepasst werden können. FazitIn diesem Artikel haben wir gelernt, wie man mit PHP und Elasticsearch eine Volltextsuchmaschine erstellt. Wir haben zunächst die PHP-Clientbibliothek von Elasticsearch installiert und damit eine Verbindung zum Elasticsearch-Server hergestellt. Anschließend erstellen wir einen Index namens „articles“ und definieren die Zuordnung der Artikel. Danach haben wir einige Daten hinzugefügt und eine Abfrage ausgeführt. Schließlich haben wir erfahren, dass Elasticsearch viele Abfragetypen unterstützt und gelernt, wie man sie verwendet, damit wir eine leistungsfähigere Volltextsuchmaschine erstellen können, die für verschiedene Datentypen geeignet ist.Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine Volltextsuchmaschine mit PHP und Elasticsearch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!