Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie verwandte Suchfunktionen über PHP und Elasticsearch

So implementieren Sie verwandte Suchfunktionen über PHP und Elasticsearch

WBOY
WBOYOriginal
2023-07-17 08:46:36903Durchsuche

So implementieren Sie verwandte Suchfunktionen über PHP und Elasticsearch

Übersicht:
In modernen Webanwendungen sind Suchfunktionen ein sehr wichtiger Bestandteil. Im Vergleich zur Volltextsuche in herkömmlichen Datenbanken verfügt Elasticsearch als leistungsstarke Open-Source-Suchmaschine über flexiblere und effizientere Suchfunktionen. In diesem Artikel erfahren Sie, wie Sie mit PHP und Elasticsearch verwandte Suchfunktionen implementieren.

  1. Umgebungseinrichtung
    Bevor wir beginnen, müssen wir sicherstellen, dass PHP und Elasticsearch korrekt installiert wurden. Es kann über die offizielle Website von PHP und die offizielle Website von Elasticsearch heruntergeladen und installiert werden. Darüber hinaus müssen Sie auch die PHP-Client-Bibliothek von Elasticsearch installieren – Elasticsearch-PHP. Es kann über Composer installiert werden und den folgenden Befehl ausführen:

    composer require elasticsearch/elasticsearch
  2. Index erstellen
    Bevor Sie Elasticsearch zum Suchen verwenden, müssen Sie zunächst einen Index erstellen. Der Index ist die Grundeinheit zum Speichern und Organisieren von Daten. Indizes können einfach über die von Elasticsearch-PHP bereitgestellte API erstellt und verwaltet werden. Das Folgende ist ein Beispielcode, der einen Index erstellt und die Feldzuordnung definiert:

    require_once 'vendor/autoload.php';
    
    $client = ElasticsearchClientBuilder::create()->build();
    
    $params = [
     'index' => 'my_index',
     'body' => [
         'mappings' => [
             'properties' => [
                 'title' => [
                     'type' => 'text',
                     'analyzer' => 'standard'
                 ],
                 'content' => [
                     'type' => 'text',
                     'analyzer' => 'standard'
                 ],
             ]
         ]
     ]
    ];
    
    $response = $client->indices()->create($params);
  3. Daten schreiben
    Nachdem die Indexerstellung abgeschlossen ist, müssen wir die Daten für nachfolgende Suchvorgänge in Elasticsearch schreiben. Das Schreiben von Daten kann durch einfache HTTP-Anfragen erfolgen. Hier ist ein Beispielcode, der einen Artikel in den Elasticsearch-Index schreibt:

    $params = [
     'index' => 'my_index',
     'id' => 1,
     'body' => [
         'title' => 'Elasticsearch相关搜索',
         'content' => 'Elasticsearch是一种强大的搜索引擎,可以实现高效的相关搜索功能。',
     ]
    ];
    
    $response = $client->index($params);
  4. Eine Suche durchführen
    Nachdem die Daten geschrieben wurden, können wir den Suchvorgang durchführen. Elasticsearch bietet eine umfangreiche API für verschiedene Suchtypen und unterstützt eine Vielzahl von Abfragemethoden, einschließlich Übereinstimmungsabfragen, Phrasenabfragen, Bereichsabfragen usw. Hier ist ein Beispielcode zum Durchführen einer verwandten Suche:

    $params = [
     'index' => 'my_index',
     'body' => [
         'query' => [
             'match' => [
                 'content' => '搜索引擎',
             ]
         ]
     ]
    ];
    
    $response = $client->search($params);
  5. Suchergebnisse abrufen
    Nachdem wir den Suchvorgang ausgeführt haben, können wir die Suchergebnisse über $response abrufen. Suchergebnisse werden im JSON-Format zurückgegeben, das eine Liste übereinstimmender Dokumente und zugehörige Bewertungsinformationen enthält. Das Folgende ist ein Beispielcode, der die Suchergebnisse durchläuft und ausgibt:

    foreach ($response['hits']['hits'] as $hit) {
     echo 'ID: ' . $hit['_id'] . ', Score: ' . $hit['_score'] . ', Title: ' . $hit['_source']['title'] . PHP_EOL;
    }

Zusammenfassung:
Durch die Einführung dieses Artikels haben wir gelernt, wie man PHP und Elasticsearch verwendet, um verwandte Suchfunktionen zu implementieren. Zuerst müssen wir PHP- und Elasticsearch-Umgebungen installieren und konfigurieren, dann Indizes erstellen und Daten schreiben. Verwenden Sie abschließend die von Elasticsearch-PHP bereitgestellte API, um relevante Suchen durchzuführen und Suchergebnisse zu erhalten. Ich glaube, dass durch die Anleitung dieses Artikels jeder bereits über die Grundkenntnisse verfügt, um entsprechende Suchfunktionen zu entwickeln. In der tatsächlichen Entwicklung können die Suchabfrageparameter und Ergebnisanzeigemethoden je nach Bedarf weiter optimiert werden, um ein besseres Sucherlebnis zu bieten.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie verwandte Suchfunktionen über PHP und Elasticsearch. 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