Heim Backend-Entwicklung PHP-Tutorial Praxisleitfaden zur PHP-Elasticsearch- und relationalen Datenbankintegration

Praxisleitfaden zur PHP-Elasticsearch- und relationalen Datenbankintegration

Sep 13, 2023 pm 12:49 PM
php elasticsearch 关系型数据库

php Elasticsearch与关系型数据库的集成实践指南

Praktischer Leitfaden für die Integration von PHP Elasticsearch und relationalen Datenbanken

Einführung:

Mit dem Aufkommen des Internets und der Big-Data-Ära entwickeln sich auch die Methoden zur Datenspeicherung und -verarbeitung ständig weiter. Herkömmliche relationale Datenbanken zeigten nach und nach einige Mängel, wenn sie mit Szenarien wie großen Datenmengen, hoher gleichzeitiger Lese- und Schreibgeschwindigkeit und Volltextsuche konfrontiert wurden. Als verteilte Such- und Analysemaschine in Echtzeit hat Elasticsearch durch seine leistungsstarken Funktionen für Volltextsuche, Echtzeitanalyse und Datenvisualisierung nach und nach die Aufmerksamkeit und Nutzung der Branche auf sich gezogen.

In vielen praktischen Anwendungsszenarien müssen wir jedoch häufig vorhandene relationale Datenbanken mit Elasticsearch integrieren, um traditionelle Anforderungen an die Datenspeicherung und -verarbeitung sowie Funktionen wie Volltextsuche und intelligente Empfehlungen zu berücksichtigen. In diesem Artikel wird erläutert, wie Sie Elasticsearch mit einer relationalen Datenbank in einer PHP-Umgebung integrieren, und es werden spezifische Codebeispiele bereitgestellt.

Teil Eins: Umgebungsvorbereitung und -konfiguration

  1. Elasticsearch installieren

Zuerst müssen wir den Elasticsearch-Server installieren und konfigurieren. Das entsprechende Installationspaket kann von der offiziellen Website (https://www.elastic.co/downloads/elasticsearch) heruntergeladen werden. Starten Sie nach Abschluss der Installation den Elasticsearch-Dienst.

  1. Installieren Sie die PHP-Elasticsearch-Bibliothek

Die Interaktion zwischen PHP und Elasticsearch kann über die offiziell bereitgestellte PHP-Elasticsearch-Bibliothek erreicht werden. Es kann über Composer installiert werden. Der Befehl lautet wie folgt:

composer require elasticsearch/elasticsearch
Nach dem Login kopieren

Nach Abschluss der Installation können wir die relevanten APIs von Elasticsearch verwenden, indem wir den entsprechenden Namespace importieren.

  1. Datenbankvorbereitung und -konfiguration

Wir müssen eine relationale Datenbank vorbereiten und darin die entsprechende Tabellenstruktur erstellen. Am Beispiel von MySQL können Sie mit der folgenden SQL-Anweisung eine Tabelle mit dem Namen „users“ erstellen:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50),
  age INT,
  email VARCHAR(50)
);
Nach dem Login kopieren

Als nächstes müssen wir die relationale Datenbank konfigurieren. Sie müssen die Datei config.php bearbeiten, um die datenbankverbindungsbezogenen Informationen zu konfigurieren, wie unten gezeigt: config.php文件,配置数据库连接相关信息,如下所示:

<?php
  $hostname = 'localhost';
  $username = 'your_username';
  $password = 'your_password';
  $database = 'your_database';
?>
Nach dem Login kopieren

第二部分:数据同步与索引建立

  1. 数据同步

在将数据库中的数据同步到Elasticsearch之前,我们需要编写一个PHP脚本来实现这一功能。以下是一个简单的示例:

<?php
  require 'vendor/autoload.php';
  require 'config.php';

  // 建立数据库连接
  $connection = new mysqli($hostname, $username, $password, $database);
  if ($connection->connect_error) {
    die("连接数据库失败:" . $connection->connect_error);
  }

  // 查询数据库数据
  $result = $connection->query("SELECT * FROM users");
  if (!$result) {
    die("查询数据失败:" . $connection->error);
  }

  // 将数据同步到Elasticsearch
  $client = ElasticsearchClientBuilder::create()->build();
  foreach ($result as $row) {
    $params = [
      'index' => 'users',
      'type' => 'user',
      'id' => $row['id'],
      'body' => [
        'name' => $row['name'],
        'age' => $row['age'],
        'email' => $row['email']
      ]
    ];
    $client->index($params);
  }

  echo "数据同步完成。";
?>
Nach dem Login kopieren

运行脚本之后,数据库中的数据将会同步到Elasticsearch的users索引中。

  1. 索引建立

索引是Elasticsearch中数据的组织方式,类似于关系型数据库中的表。我们需要在Elasticsearch中配置索引,并定义相应的字段映射。

以下是一个创建索引的示例代码:

<?php
  $params = [
    'index' => 'users',
    'body' => [
      'mappings' => [
        'user' => [
          'properties' => [
            'name' => [
              'type' => 'text'
            ],
            'age' => [
              'type' => 'integer'
            ],
            'email' => [
              'type' => 'keyword'
            ]
          ]
        ]
      ]
    ]
  ];

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

在以上示例中,我们定义了一个名为users的索引,包含了nameageemail三个字段,并使用了相应的字段映射。

第三部分:数据搜索与展示

  1. 数据搜索

在进行数据搜索之前,我们需要对Elasticsearch进行配置,并引入相应的依赖库。以下是一个简单的示例:

<?php
  require 'vendor/autoload.php';

  // 连接Elasticsearch
  $client = ElasticsearchClientBuilder::create()->build();

  // 查询用户信息
  $params = [
    'index' => 'users',
    'type' => 'user',
    'body' => [
      'query' => [
        'match' => [
          'name' => 'John'
        ]
      ]
    ]
  ];

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

在以上示例中,我们查询了name

<?php
  require 'vendor/autoload.php';

  // 连接Elasticsearch
  $client = ElasticsearchClientBuilder::create()->build();

  // 查询用户信息
  $params = [
    'index' => 'users',
    'type' => 'user',
    'body' => [
      'query' => [
        'match' => [
          'name' => 'John'
        ]
      ]
    ]
  ];

  $response = $client->search($params);
  
  echo "查询到" . $response['hits']['total']['value'] . "条用户信息:" . PHP_EOL;
  
  foreach ($response['hits']['hits'] as $hit) {
    echo "ID:" . $hit['_id'] . ",Name:" . $hit['_source']['name'] . ",Age:" . $hit['_source']['age'] . ",Email:" . $hit['_source']['email'] . PHP_EOL;
  }
?>
Nach dem Login kopieren
Teil 2: Datensynchronisierung und Indexerstellung
  1. Datensynchronisierung

In der Datenbank Daten Vor der Synchronisierung mit Elasticsearch müssen wir ein PHP-Skript schreiben, um diese Funktion zu implementieren. Das Folgende ist ein einfaches Beispiel:

rrreee

Nach der Ausführung des Skripts werden die Daten in der Datenbank mit dem users-Index von Elasticsearch synchronisiert.

Indexerstellung

🎜🎜Index ist die Art und Weise, wie Daten in Elasticsearch organisiert werden, ähnlich wie Tabellen in relationalen Datenbanken. Wir müssen den Index in Elasticsearch konfigurieren und die entsprechende Feldzuordnung definieren. 🎜🎜Das Folgende ist ein Beispielcode zum Erstellen eines Index: 🎜rrreee🎜Im obigen Beispiel definieren wir einen Index mit dem Namen users, einschließlich name, Es gibt drei Felder: Alter und E-Mail, und die entsprechende Feldzuordnung wird verwendet. 🎜🎜Teil 3: Datensuche und -anzeige🎜🎜🎜Datensuche🎜🎜🎜Bevor wir die Datensuche durchführen, müssen wir Elasticsearch konfigurieren und die entsprechenden Abhängigkeitsbibliotheken einführen. Hier ist ein einfaches Beispiel: 🎜rrreee🎜Im obigen Beispiel fragen wir die Benutzerinformationen ab, die „John“ im Feld name enthalten. 🎜🎜🎜Datenanzeige🎜🎜🎜Nachdem wir die Suchergebnisse erhalten haben, können wir die Ergebnisse entsprechend den Anforderungen anzeigen und verarbeiten. Das Folgende ist ein einfaches Beispiel für einen Anzeigecode: 🎜rrreee🎜Das obige Beispiel zeigt die gesuchten Benutzerinformationen an. 🎜🎜Fazit: 🎜🎜Dieser Artikel stellt vor, wie man Elasticsearch mit einer relationalen Datenbank in einer PHP-Umgebung integriert, und stellt spezifische Codebeispiele bereit. Wir hoffen, dass den Lesern durch die Anleitung dieses Artikels eine nahtlose Integration beider gelingt, wodurch die leistungsstarken Funktionen und Leistungsvorteile von Elasticsearch vollständig genutzt und die Effizienz und Qualität der Datenspeicherung und -verarbeitung verbessert werden. 🎜

Das obige ist der detaillierte Inhalt vonPraxisleitfaden zur PHP-Elasticsearch- und relationalen Datenbankintegration. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

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

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

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

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.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

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

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

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

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

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 PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

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.

See all articles