Heim  >  Artikel  >  Backend-Entwicklung  >  ElasticSearch-Funktion der PHP-Funktion

ElasticSearch-Funktion der PHP-Funktion

WBOY
WBOYOriginal
2023-05-19 10:40:53822Durchsuche

Mit dem Aufkommen des Big-Data-Zeitalters werden das Speichern und Abrufen von Daten immer wichtiger. Als groß angelegte verteilte Such- und Analysemaschine, die auf der Lucene-Suchmaschine basiert, ist ElasticSearch heute zweifellos zu einer der beliebtesten Suchmaschinen geworden. In PHP-Anwendungen müssen wir häufig ElasticSearch verwenden, um Daten abzurufen. In diesem Artikel werden die ElasticSearch-Funktionen einiger häufig verwendeter PHP-Funktionen vorgestellt.

  1. Elasticsearch-Klasse

Die erste ist die Elasticsearch-Klasse, die die Kernklasse für die Interaktion des PHP-Clients mit dem Elasticsearch-Server darstellt. Häufig verwendete Initialisierungsmethoden sind wie folgt:

$hosts = ['http://localhost:9200'];
$client = ElasticsearchClientBuilder::create()->setHosts($hosts)->build();

Unter diesen ist $hosts die Elasticsearch-Serveradresse, die ein Array aus einer oder mehreren Adressen sein kann. Die Methode getClient() kann das Objekt $client abrufen, um nachfolgende Vorgänge zu erleichtern.

  1. Index erstellen

In ElasticSearch müssen wir zunächst einen Index zum Speichern von Daten erstellen. Das Folgende ist ein einfaches Codebeispiel zum Erstellen eines Index:

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ]
    ]
];
$response = $client->indices()->create($params);

Im obigen Code enthält der Parameter $params den Indexnamen und die Indexeinstellungen, die erstellt werden sollen. Im Hauptteil können wir die Anzahl der Shards und Kopien des Index usw. festlegen. Führen Sie abschließend die Methode create() aus, um die Indexerstellung abzuschließen.

  1. Dokumente hinzufügen

Das Hinzufügen von Dokumenten ist eine der wichtigsten Möglichkeiten, Daten zum Index hinzuzufügen. Hier ist ein Beispiel für das Hinzufügen eines Dokuments:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'title' => 'My first document',
        'content' => 'This is the content of my first document'
    ]
];
$response = $client->index($params);

Im obigen Code enthält der Parameter $params den Inhalt und die Methode zum Hinzufügen des hinzuzufügenden Dokuments. Unter diesen stellt der Index den hinzuzufügenden Index dar, der Typ den hinzuzufügenden Dokumenttyp, die ID die ID-Nummer des hinzuzufügenden Dokuments und der Körper den Inhalt des hinzuzufügenden Dokuments. Führen Sie abschließend die Methode index() aus, um den Vorgang zum Hinzufügen von Dokumenten abzuschließen.

  1. Dokument aktualisieren

Wenn wir den Inhalt eines vorhandenen Dokuments ändern müssen, können wir die Methode update() verwenden. Hier ist ein Beispiel für die Aktualisierung eines Dokuments:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'doc' => [
            'title' => 'Updated document title',
            'content' => 'This is the updated content of my first document'
        ]
    ]
];
$response = $client->update($params);

Im obigen Code enthält der Parameter $params den Inhalt des zu aktualisierenden Dokuments und die Aktualisierungsmethode. Unter diesen stellt doc den zu aktualisierenden Dokumentinhalt dar. Führen Sie abschließend die Methode update() aus, um den Dokumentaktualisierungsvorgang abzuschließen.

  1. Dokument löschen

Wenn wir ein vorhandenes Dokument löschen müssen, können wir die Methode delete() verwenden. Hier ist ein Beispiel für das Löschen eines Dokuments:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1'
];
$response = $client->delete($params);

Im obigen Code enthält der Parameter $params den Inhalt des zu löschenden Dokuments und die Löschmethode. Führen Sie abschließend die Methode delete() aus, um das Löschen des Dokuments abzuschließen.

  1. Dokumente durchsuchen

Die Suche ist eine der häufigsten Funktionen von ElasticSearch. Das Folgende ist ein einfaches Suchbeispiel:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'match' => [
                'title' => 'document'
            ]
        ]
    ]
];
$response = $client->search($params);

Im obigen Code enthält der Parameter $params den Suchinhalt und die Suchmethode. Dabei stellt der Titel das zu durchsuchende Feld und das Dokument den zu durchsuchenden Inhalt dar. Führen Sie abschließend die Methode search() aus, um die Suche nach Dokumenten abzuschließen.

  1. Aggregation

Neben der Suche unterstützt ElasticSearch auch verschiedene Aggregationsvorgänge. Hier ist ein einfaches Aggregationsbeispiel:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'aggs' => [
            'my_agg' => [
                'terms' => [
                    'field' => 'title'
                ]
            ]
        ]
    ]
];
$response = $client->search($params);

Im obigen Code enthält der Parameter $params den zu aggregierenden Inhalt und die Aggregationsmethode. Unter diesen ist my_agg der Name der Aggregation und title stellt das zu aggregierende Feld dar. Führen Sie abschließend die Methode search() aus, um den Aggregationsvorgang abzuschließen.

Zusammenfassung

Das Obige ist eine Einführung in die ElasticSearch-Funktion häufig verwendeter PHP-Funktionen. Natürlich gibt es noch viele andere Vorgänge, z. B. Stapelhinzufügung, Stapellöschung, Paging-Suche, komplexe Aggregation usw. In der tatsächlichen Entwicklung müssen wir basierend auf den spezifischen Anforderungen unterschiedliche Betriebsmethoden auswählen. ElasticSearch verfügt über sehr leistungsstarke Such- und Aggregationsfunktionen und ist meiner Meinung nach auch sehr gut in der Verarbeitung großer Datenmengen.

Das obige ist der detaillierte Inhalt vonElasticSearch-Funktion der PHP-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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