Heim > Artikel > Backend-Entwicklung > So implementieren Sie eine mehrsprachige Suche mit PHP und Elasticsearch
So implementieren Sie die mehrsprachige Suche über PHP und Elasticsearch
In der heutigen Internetumgebung ist die mehrsprachige Suche mit der Entwicklung der Globalisierung zu einer der notwendigen Funktionen für viele Websites geworden. Als leistungsstarke Open-Source-Suchmaschine verfügt Elasticsearch über effiziente und flexible Suchfunktionen. In diesem Artikel wird anhand von Codebeispielen erläutert, wie die mehrsprachige Suche über PHP und Elasticsearch implementiert wird.
1. Vorbereitung
Bevor Sie beginnen, müssen Sie sicherstellen, dass die folgende Umgebung installiert ist:
2. Erstellen Sie einen Index
Bevor Sie eine mehrsprachige Suche durchführen, müssen Sie zunächst einen geeigneten Index erstellen und die entsprechenden Daten in Elasticsearch speichern. Das Folgende ist ein einfaches Beispiel:
<?php require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $hosts = [ 'http://localhost:9200' ]; $client = ClientBuilder::create() ->setHosts($hosts) ->build(); $params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', 'fields' => [ 'zh' => [ 'type' => 'text', 'analyzer' => 'ik_max_word', 'search_analyzer' => 'ik_smart' ], 'en' => [ 'type' => 'text', 'analyzer' => 'english', 'search_analyzer' => 'english' ] ] ], 'content' => [ 'type' => 'text', 'fields' => [ 'zh' => [ 'type' => 'text', 'analyzer' => 'ik_max_word', 'search_analyzer' => 'ik_smart' ], 'en' => [ 'type' => 'text', 'analyzer' => 'english', 'search_analyzer' => 'english' ] ] ] ] ] ] ]; $response = $client->indices()->create($params);
Im obigen Code verwenden wir den PHP-Client von Elasticsearch, um einen Index namens my_index zu erstellen, der einen Titel und ein Inhaltsfeld enthält, die dem Titel bzw. Inhalt des Artikels entsprechen. Es werden zwei Unterfelder „zh“ und „en“ definiert, die zum Speichern chinesischer bzw. englischer Datenversionen verwendet werden, und die entsprechenden Analysatoren werden angegeben.
3. Daten einfügen
Als nächstes müssen wir einige Daten für nachfolgende Suchen in den Index einfügen. Hier ist ein einfaches Beispiel:
<?php $doc = [ 'title' => [ 'zh' => '中文标题', 'en' => 'English title' ], 'content' => [ 'zh' => '中文内容', 'en' => 'English content' ] ]; $params = [ 'index' => 'my_index', 'id' => '1', 'body' => $doc ]; $response = $client->index($params);
Im obigen Code erstellen wir ein Dokument mit chinesischen und englischen Titeln und Inhalten und fügen es in einen Index namens my_index ein.
4. Suche
Nachdem wir die Erstellung des Index und das Einfügen von Daten abgeschlossen haben, können wir mit der mehrsprachigen Suche beginnen. Das Folgende ist ein einfaches Beispiel:
<?php $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'multi_match' => [ 'query' => '关键词', 'fields' => ['title.zh', 'content.zh', 'title.en', 'content.en'] ] ] ] ]; $response = $client->search($params); var_dump($response['hits']['hits']);
Im obigen Code verwenden wir die mehrsprachige Mehrfeldsuche, um zu suchen, indem wir die zu durchsuchenden Felder und Schlüsselwörter angeben. Suchergebnisse werden nach Relevanz sortiert und passende Dokumente werden zurückgegeben.
5. Zusammenfassung
Es ist nicht kompliziert, eine mehrsprachige Suche über PHP und Elasticsearch zu implementieren. Durch die Erstellung geeigneter Indizes und Dateneinfügungen in Kombination mit der Suche in mehreren Sprachen und Feldern können wir Suchfunktionen in mehreren Sprachen schnell und genau implementieren. Ich hoffe, dieser Artikel ist hilfreich für Sie.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine mehrsprachige Suche mit PHP und Elasticsearch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!