Heim >Backend-Entwicklung >PHP-Tutorial >So erstellen Sie eine Suchfunktion mit mehreren Kriterien mit Elasticsearch und PHP

So erstellen Sie eine Suchfunktion mit mehreren Kriterien mit Elasticsearch und PHP

WBOY
WBOYOriginal
2023-07-08 09:18:11828Durchsuche

So verwenden Sie Elasticsearch und PHP zum Erstellen von Suchfunktionen mit mehreren Bedingungen

Einführung:
Elasticsearch ist eine verteilte Open-Source-Such- und Analysemaschine, die häufig zum Erstellen leistungsstarker Suchfunktionen verwendet wird. Es ermöglicht eine schnelle und genaue Suche und unterstützt verschiedene Arten von Abfragen. In diesem Artikel wird erläutert, wie Sie mit Elasticsearch und PHP Suchfunktionen mit mehreren Bedingungen erstellen und entsprechende Codebeispiele bereitstellen.

  1. Elasticsearch installieren und konfigurieren:
    Zuerst müssen wir Elasticsearch installieren und konfigurieren. Sie können Elasticsearch von der offiziellen Website herunterladen und den Anweisungen zur Installation folgen. Nachdem die Installation abgeschlossen ist, starten Sie Elasticsearch über die Befehlszeilenschnittstelle.
  2. Installieren und konfigurieren Sie die PHP-Erweiterung von Elasticsearch:
    Als nächstes müssen wir die PHP-Erweiterung für Elasticsearch installieren und konfigurieren. Die Installation der Elasticsearch-PHP-Erweiterung ist mit Composer einfach. Erstellen Sie eine Composer.json-Datei im Stammverzeichnis Ihres Projekts und fügen Sie den folgenden Inhalt hinzu:
{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}

Führen Sie dann den Befehl composer install aus, um die Elasticsearch-PHP-Erweiterung zu installieren.

  1. Mit Elasticsearch verbinden:
    Im PHP-Code müssen wir eine Verbindung mit Elasticsearch herstellen. Führen Sie zunächst den Namespace der Elasticsearch-PHP-Erweiterung ein und erstellen Sie ein Elasticsearch-Clientobjekt:
<?php
require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$hosts = [
    'http://localhost:9200' // Elasticsearch的访问地址
];

$client = ClientBuilder::create()->setHosts($hosts)->build();
?>
  1. Erstellen Sie einen Index:
    Bevor wir eine Suche mit mehreren Bedingungen durchführen, müssen wir einen Index erstellen und Daten zum Index hinzufügen. Wenn Sie bereits über einen vorhandenen Index verfügen, können Sie diesen Schritt überspringen.

Definieren Sie zunächst eine Indexkonfiguration und -zuordnung. Beispielsweise erstellen wir einen Index namens „Artikel“, definieren den Typ „Artikel“ und geben die Typen der Felder „Titel“ und „Inhalt“ an:

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => ['type' => 'text'],
                'content' => ['type' => 'text']
            ]
        ]
    ]
];

$response = $client->indices()->create($params);
?>

Anschließend fügen wir dem Index Dokumente hinzu. Fügen wir zum Beispiel ein Dokument mit dem Titel „Neuigkeiten“ hinzu:

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'title' => '新闻',
        'content' => '这是一条新闻'
    ]
];

$response = $client->index($params);
?>
  1. Führen Sie eine Suche nach mehreren Kriterien durch:
    Jetzt können wir eine Suche nach mehreren Kriterien durchführen. Definieren Sie zunächst eine Abfrage, die alle Suchkriterien umfasst. Beispielsweise möchten wir nach Dokumenten suchen, deren Titel „News“ und deren Inhalt „International“ enthält:
<?php
$params = [
    'index' => 'articles',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    ['match' => ['title' => '新闻']],
                    ['match' => ['content' => '国际']]
                ]
            ]
        ]
    ]
];

$response = $client->search($params);
?>

Abschließend durchlaufen wir die Suchergebnisse und drucken den Titel und Inhalt jedes Dokuments aus:

<?php
foreach ($response['hits']['hits'] as $hit) {
    echo '标题:' . $hit['_source']['title'] . '<br>';
    echo '内容:' . $hit['_source']['content'] . '<br>';
    echo '----------------<br>';
}
?>

Fazit:
Mit den oben genannten Schritten können wir mithilfe von Elasticsearch und PHP Suchfunktionen mit mehreren Kriterien erstellen. Installieren und konfigurieren Sie zunächst Elasticsearch und die entsprechende PHP-Erweiterung. Stellen Sie dann eine Verbindung zu Elasticsearch her, erstellen Sie schließlich einen Index, führen Sie eine Suche mit mehreren Bedingungen durch und verarbeiten Sie die Suchergebnisse.

Hinweis: Um die Genauigkeit und Leistung der Suche sicherzustellen, wird empfohlen, den Index vor der Verwendung einer Suche mit mehreren Bedingungen zu optimieren, z. B. durch die Einrichtung eines geeigneten Wortsegmentierers, den Aufbau eines Index usw.

Referenzmaterialien:

  • Offizielle Dokumentation von Elasticsearch: https://www.elastic.co/guide/index.html
  • Offizielle PHP-Dokumentation von Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/ client/php-api/current/index.html

Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine Suchfunktion mit mehreren Kriterien mit Elasticsearch und PHP. 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