Heim >Backend-Entwicklung >PHP-Tutorial >So nutzen Sie Elasticsearch und PHP für die Dokumentenverwaltung und den Abruf
So nutzen Sie Elasticsearch und PHP für die Dokumentenverwaltung und -abfrage
Übersicht
Elasticsearch ist eine verteilte Open-Source-Suchmaschine mit leistungsstarken Textsuch- und Analysefunktionen. PHP ist eine beliebte serverseitige Programmiersprache, die häufig für die Webentwicklung verwendet wird. In diesem Artikel wird die Verwendung von Elasticsearch und PHP für die Dokumentenverwaltung und den Dokumentenabruf vorgestellt und Codebeispiele bereitgestellt, um den Lesern das Verständnis und die Übung zu erleichtern.
Elasticsearch installieren und konfigurieren
Zuerst müssen wir Elasticsearch installieren und konfigurieren. Sie können die neueste Version von der offiziellen Website von Elasticsearch herunterladen und den Anweisungen zur Installation folgen. Nach Abschluss der Installation müssen Sie einige grundlegende Konfigurationen für Elasticsearch durchführen, z. B. das Festlegen des Clusternamens und des Knotennamens. Informationen zu bestimmten Konfigurationsmethoden finden Sie in der offiziellen Dokumentation von Elasticsearch.
PHP-Client installieren und konfigurieren
Als nächstes müssen wir den PHP-Client installieren und konfigurieren, um mit Elasticsearch interagieren zu können. Es wird empfohlen, den offiziell von Elasticsearch bereitgestellten PHP-Client – Elasticsearch-PHP (https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html) zu verwenden. Sie können Composer verwenden, um den Client zu installieren. Der Befehl lautet wie folgt:
composer require elasticsearch/elasticsearch
Nach Abschluss der Installation können wir den folgenden Code verwenden, um eine Verbindung zu Elasticsearch herzustellen und zu überprüfen, ob die Verbindung erfolgreich ist:
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create() ->setHosts(['localhost:9200']) ->build(); $params = [ 'index' => 'test_index', 'body' => [ 'query' => [ 'match_all' => new stdClass(), ], ], ]; $response = $client->search($params); print_r($response);
Im obigen Code haben wir zuerst den Elasticsearch-PHP-Client eingeführt und eine Elasticsearch-Client-Instanz erstellt. Anschließend verwenden wir diese Client-Instanz, um eine einfache Abfrageanforderung zu senden. match_all
in der Abfrageanweisung bedeutet, dass alle Dokumente abgeglichen werden, und test_index
bedeutet, dass der Index abgefragt werden soll. Abschließend senden wir die Abfrageanforderung über die Methode search
und drucken die Abfrageergebnisse aus. match_all
表示匹配所有文档,test_index
表示要查询的索引。最后,我们通过search
方法发送查询请求,并打印出查询结果。
创建索引和文档
接下来,我们将学习如何创建索引和文档。索引是存储文档的地方,类似于关系数据库中的表。而文档则是实际的数据,类似于关系数据库中的行。可以使用以下代码来创建索引和一个简单的文档:
$params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_replicas' => 0, 'number_of_shards' => 1, ], 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', ], 'content' => [ 'type' => 'text', ], ], ], ], ]; $response = $client->indices()->create($params); $params = [ 'index' => 'my_index', 'id' => '1', 'body' => [ 'title' => 'Elasticsearch入门指南', 'content' => '本书详细介绍了如何使用Elasticsearch进行文档管理和检索。', ], ]; $response = $client->index($params);
以上代码中,我们首先使用indices()->create
方法创建了一个名为my_index
的索引,并指定了一些索引的设置和属性(mapping)。接着,我们使用index
方法创建了一个文档,并指定了文档的标题和内容。
搜索文档
有了索引和文档后,我们可以使用Elasticsearch进行搜索。以下是一个简单的搜索示例代码:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => '入门指南', ], ], ], ]; $response = $client->search($params); print_r($response);
以上代码中,我们使用了match
查询来搜索标题中包含入门指南
的文档。通过打印查询结果,我们可以看到Elasticsearch返回了匹配的文档信息。
更新和删除文档
当需要更新或删除文档时,可以使用以下代码示例:
$params = [ 'index' => 'my_index', 'id' => '1', 'body' => [ 'doc' => [ 'title' => 'Elasticsearch入门指南(第二版)', ], ], ]; $response = $client->update($params); $params = [ 'index' => 'my_index', 'id' => '1', ]; $response = $client->delete($params);
以上代码中,我们首先使用update
方法更新了ID为1的文档的标题。然后,使用delete
Als nächstes lernen wir, wie man Indizes und Dokumente erstellt. In einem Index werden Dokumente gespeichert, ähnlich einer Tabelle in einer relationalen Datenbank. Dokumente sind tatsächliche Daten, ähnlich wie Zeilen in einer relationalen Datenbank. Sie können den folgenden Code verwenden, um einen Index und ein einfaches Dokument zu erstellen:
rrreee
indices()->create
, um eine Datei mit dem Namen zu erstellen my_index
Index und gibt einige Indexeinstellungen und Eigenschaften (Zuordnung) an. Als Nächstes verwenden wir die Methode index
, um ein Dokument zu erstellen und den Titel und Inhalt des Dokuments anzugeben. 🎜🎜Dokumente durchsuchen🎜Sobald der Index und die Dokumente vorhanden sind, können wir mit Elasticsearch suchen. Hier ist ein einfacher Suchbeispielcode: 🎜rrreee🎜Im obigen Code haben wir die match
-Abfrage verwendet, um nach Dokumenten zu suchen, deren Titel Getting Started
enthält. Durch Drucken der Abfrageergebnisse können wir sehen, dass Elasticsearch übereinstimmende Dokumentinformationen zurückgegeben hat. 🎜🎜Dokumente aktualisieren und löschen🎜Wenn Sie ein Dokument aktualisieren oder löschen müssen, können Sie das folgende Codebeispiel verwenden: 🎜rrreee🎜Im obigen Code verwenden wir zunächst die Methode update
, um den Titel zu aktualisieren des Dokuments mit der ID 1. Anschließend wird das Dokument mit der ID 1 mit der Methode delete
gelöscht. 🎜🎜Zusammenfassung🎜Durch die Einführung und Codebeispiele dieses Artikels haben wir gelernt, wie man Elasticsearch und PHP für die Dokumentenverwaltung und den Dokumentenabruf verwendet. Zuerst müssen wir Elasticsearch und den Elasticsearch-PHP-Client mit Composer installieren und konfigurieren. Anschließend lernten wir, wie man Indizes und Dokumente erstellt und wie man Dokumente durchsucht, aktualisiert und löscht. Ich hoffe, dass dieser Artikel den Lesern helfen kann, Elasticsearch und PHP für die Dokumentenverwaltung und den Dokumentenabruf besser zu verstehen und zu nutzen. 🎜Das obige ist der detaillierte Inhalt vonSo nutzen Sie Elasticsearch und PHP für die Dokumentenverwaltung und den Abruf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!