


PHP-Entwicklung: So verwenden Sie Elasticsearch zur Implementierung der Volltextsuche
In modernen Webanwendungen wachsen die Datenmengen, aber auch die Erwartungen der Benutzer und der Zugriff auf Daten. Daher wird Suchtechnologie immer wichtiger, um die Erwartungen der Benutzer zu erfüllen und ein besseres Benutzererlebnis zu bieten. Die Volltextsuche ist eine leistungsstarke Technologie, mit der große Datenmengen schnell indiziert, durchsucht und sortiert werden können. In dieser Hinsicht ist Elasticsearch eine führende Open-Source-Suchmaschine, die viele erweiterte Funktionen sowie hohe Verfügbarkeit, einfache Skalierbarkeit und andere Vorteile bietet.
In diesem Artikel stellen wir vor, wie Sie Elasticsearch verwenden, um die Volltextsuche über PHP zu implementieren. Wir beginnen mit der Einrichtung der Umgebung, einschließlich der Installation von Elasticsearch und PHP, und bieten dann eine ausführliche Einführung in die drei Hauptaspekte Indizierung, Suche und Analyse.
1. Umgebungseinrichtung
Installieren Sie zunächst Elasticsearch lokal oder auf dem Server. Elasticsearch kann von der offiziellen Website oder über den Paketmanager heruntergeladen und installiert werden.
Zweitens installieren Sie den PHP-Client von Elasticsearch über Composer, nämlich elasticsearch-php. Er bietet viele praktische Methoden und Klassen zum Aufrufen der Elasticsearch-API.
Composer erfordert Elasticsearch/Elasticsearch
Nach Abschluss der Installation konfigurieren Sie Folgendes in der PHP-Datei:
require 'vendor/autoload.php';
$client = ElasticsearchClientBuilder::create()->build( );
Auf diese Weise entsteht ein Client, der mit dem Elasticsearch-Server kommuniziert.
2. Index
In Elasticsearch ist ein Index eine Datensammlung, die zum Speichern und schnellen Auffinden von Daten verwendet wird. Wir können die API von elasticsearch-php verwenden, um Daten in den Index einzufügen.
- Erstellen Sie einen Index
Zuerst müssen wir einen neuen Index erstellen. Wir verwenden den folgenden Code, um einen Typ namens „my_type“ im Index namens „my_index“ zu erstellen.
$params = [
'index' => 'my_index', 'body' => [ 'mappings' => [ 'my_type' => [ 'properties' => [ 'title' => ['type' => 'text'], 'body' => ['type' => 'text'], ] ] ] ]
];
$response = $client->indices()->create($params);
Feldtypen „title“ und „body“ im Array „properties“. ist „text“, was bedeutet, dass sie im Volltext indiziert werden. In der Praxis werden wir Indizes und Feldtypen entsprechend den spezifischen Anforderungen festlegen.
Auf diese Weise haben wir erfolgreich einen Index mit dem Namen „my_index“ erstellt.
- Dokumentdaten zum Index hinzufügen
Verwenden Sie den folgenden Code, um das Dokument in den Index einzufügen:
$params = [
'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'title' => 'PHP Elasticsearch 全文检索', 'body' => 'Elasticsearch 是一个领先的全文搜索引擎,其功能包括分布式、高可用、实时搜索和分析能力等。', ]
];
$response = $client->index($params) ;
Hier fügen wir ein Dokument mit Titel und Text in den Index ein.
- Dokument aktualisieren
Wenn Sie ein Dokument aktualisieren müssen, das sich bereits im Index befindet, verwenden Sie den folgenden Code:
$params = [
'index' => 'my_index', 'type' => 'my_type', 'id' => '1', 'body' => [ 'doc' => [ 'title' => '修改后的标题', 'body' => '修改后的正文内容', ] ]
];
$response = $client->update( $params);
Es ist zu beachten, dass bei der Aktualisierung die ID des Dokuments angegeben werden muss.
- Dokument löschen
Wenn Sie ein vorhandenes Dokument löschen müssen, verwenden Sie den folgenden Code:
$params = [
'index' => 'my_index', 'type' => 'my_type', 'id' => '1'
];
$response = $client->delete($params);
Damit haben wir das Erstellen, Einfügen, Aktualisieren und Löschen von Indizes und Dokumenten abgeschlossen.
3. Suche
Sehen wir uns an, wie man die Elasticsearch-PHP-API zum Suchen verwendet.
- Einfache Abfrage
Zuerst führen wir eine einfache Abfrage aus:
$params = [
'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'match' => [ 'title' => 'PHP' ] ] ]
];
$response = $client->search($params);
in der oben genannten Code führen wir eine Match-Abfrage für alle Dokumente im Index durch, die das Schlüsselwort „PHP“ enthalten. Die Suchergebnisse werden in der Variablen $response gespeichert.
- Abfrage mit mehreren Bedingungen
Wenn Sie mehrere Bedingungen abfragen müssen, können Sie eine Bool-Abfrage verwenden, um mehrere Bedingungen zu kombinieren:
$params = [
'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'bool' => [ 'must' => [ [ 'match' => [ 'title' => 'PHP' ] ], [ 'match' => [ 'body' => '搜索引擎' ] ] ] ] ] ]
];
$response = $client->search ( $params);
Hier geben wir über den Must-Parameter zwei Abfragebedingungen an, die gleichzeitig erfüllt sein müssen.
- Paging-Abfrage
Wenn die Datenmenge groß ist, können wir die Suchergebnisse paginieren:
$params = [
'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'from' => 0, 'size' => 10, 'query' => [ 'match' => [ 'title' => 'PHP' ] ] ]
];
$response = $client->search($params);
Geben Sie den Offset und die Größe des Ergebnissatzes über die Parameter „from“ und „size“ an.
- Nach Bewertung sortieren
Für genauere Suchergebnisse berechnet Elasticsearch für jedes Dokument eine Relevanzbewertung. Mit dem folgenden Code können Sie nach Punktzahl sortieren:
$params = [
'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'match' => [ 'title' => 'PHP' ] ], 'sort' => [ '_score' => [ 'order' => 'desc' ] ] ]
];
$response = $client->search($params);
Auf diese Weise werden die Abfrageergebnisse nach sortiert Relevanzbewertung von hoch nach niedrig sortieren.
4. Analyse
Elasticsearch unterstützt eine Vielzahl leistungsstarker Analyse- und Aggregationsfunktionen, mit denen wir tiefere Informationen über den Datensatz erhalten können.
- Aggregation
Der folgende Code kann die zehn Wörter mit der höchsten Häufigkeit des Vorkommens im Feld „Titel“ abrufen:
$params = [
'index' => 'my_index', 'type' => 'my_type', 'size' => 0, 'body' => [ 'aggs' => [ 'top_titles' => [ 'terms' => [ 'field' => 'title.keyword', 'size' => 10 ] ] ] ]
];
$response = $client-> search($params) ;
Geben Sie über den Größenparameter an, dass zurückgegebene Dokumente übersprungen und nur aggregierte Ergebnisse zurückgegeben werden sollen.
- Analysatoren
Elasticsearch bietet außerdem viele leistungsstarke Analysatoren zum Analysieren und Verarbeiten von Text. Der folgende Code zeigt, wie der chinesische Analysator zum Verarbeiten von Text verwendet wird:
$params = [
'index' => 'my_index', 'body' => [ 'settings' => [ 'analysis' => [ 'analyzer' => [ 'my_analyzer' => [ 'type' => 'custom', 'tokenizer' => 'ik_max_word' ] ] ] ] ]
];
$response = $client->indices()->putSettings($params);
这里,我们为名为“my_analyzer”的分析器指定了“ik_max_word”分词器。
下面的代码可以使用这个分析器来分析文本:
$params = [
'index' => 'my_index', 'body' => [ 'query' => [ 'query_string' => [ 'query' => '搜索', 'analyzer' => 'my_analyzer', 'default_field' => 'title' ] ] ]
];
$response = $client->search($params);
这样,我们就可以使用中文分析器来分析中文文本了。
总结
在本文中,我向您介绍了如何使用elasticsearch-php的API来创建、添加、更新和删除索引和文档,以及如何使用搜索API来执行简单和复杂的查询。此外,我还介绍了使用聚合和分析器来处理数据的相关技术。
随着数据集规模的增加,Elasticsearch的重要性逐渐增加。只要您熟悉它的API,您就可以通过PHP轻松地利用其强大的搜索和分析能力来优化您的Web应用程序。
Das obige ist der detaillierte Inhalt vonPHP-Entwicklung: So verwenden Sie Elasticsearch zur Implementierung der Volltextsuche. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
