Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich PHP Elasticsearch, um eine kombinierte Abfrage mit mehreren Feldern zu implementieren?

Wie verwende ich PHP Elasticsearch, um eine kombinierte Abfrage mit mehreren Feldern zu implementieren?

WBOY
WBOYOriginal
2023-09-13 14:07:511007Durchsuche

如何使用php Elasticsearch实现多字段组合查询?

Wie verwende ich PHP Elasticsearch, um eine kombinierte Abfrage mit mehreren Feldern zu implementieren?

Einführung:
Elasticsearch ist eine verteilte Open-Source-Suchmaschine auf Basis von Lucene. Sie bietet schnelle und zuverlässige Volltextsuchfunktionen und unterstützt die Speicherung, den Abruf und die Analyse großer Datenmengen. In diesem Artikel erfahren Sie, wie Sie mit der PHP-Elasticsearch-Bibliothek kombinierte Abfragen mit mehreren Feldern implementieren, um verschiedene Suchanforderungen besser zu erfüllen.

1. Elasticsearch installieren und konfigurieren
Um die PHP-Elasticsearch-Bibliothek zu verwenden, müssen Sie zunächst Elasticsearch installieren und konfigurieren. Sie können Elasticsearch auf der offiziellen Website herunterladen und installieren und sicherstellen, dass es ausgeführt wird.

2. Installieren Sie die PHP-Elasticsearch-Bibliothek
Sie können Composer verwenden, um die PHP-Elasticsearch-Bibliothek zu installieren. Erstellen Sie eine Composer.json-Datei im Stammverzeichnis des Projekts und fügen Sie den folgenden Inhalt hinzu:

{
„require“: {

"elasticsearch/elasticsearch": "^7.0"

}
}
Führen Sie dann den folgenden Befehl in der Befehlszeile aus, um die Bibliothek zu installieren:
composer install

Drei: Mit Elasticsearch verbinden
Als nächstes erstellen Sie im PHP-Code einen Client für die Verbindung mit Elasticsearch. Fügen Sie den folgenden Code am Anfang der Datei hinzu:

require 'vendor/autoload.php';

$client = new ElasticsearchClient();

4. Erstellen Sie einen Index
Speichern Sie die zu durchsuchenden Daten im Index. Nehmen wir hier an, dass wir einige Buchinformationen speichern möchten. Fügen Sie das folgende Snippet in Ihren PHP-Code ein:

$params = [

'index' => 'books',
'body' => [
    'mappings' => [
        'properties' => [
            'title' => [
                'type' => 'text'
            ],
            'author' => [
                'type' => 'text'
            ],
            'category' => [
                'type' => 'keyword'
            ]
        ]
    ]
]

];

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

Dadurch wird eine Datei mit dem Namen erstellt Index von „Büchern“ und definieren Sie drei Felder: „Titel“, „Autor“ und „Kategorie“.

5. Dokumente hinzufügen
Zu durchsuchende Dokumente zum Index hinzufügen. Fügen Sie den folgenden Codeausschnitt in den PHP-Code ein:

$params = [

'index' => 'books',
'id' => '1',
'body' => [
    'title' => 'The Great Gatsby',
    'author' => 'F. Scott Fitzgerald',
    'category' => 'Fiction'
]

];

$response = $client->index($params);

6. Führen Sie eine Mehrfeld-Kombinationsabfrage aus
Jetzt haben wir sind bereit. Es ist Zeit, Mehrfeld-Kombinationsabfragen durchzuführen. Fügen Sie den folgenden Codeausschnitt in den PHP-Code ein:

$params = [

'index' => 'books',
'body' => [
    'query' => [
        'bool' => [
            'must' => [
                ['match' => ['title' => 'great']],
                ['match' => ['author' => 'fitzgerald']]
            ]
        ]
    ]
]

];

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

Im obigen Code haben wir eine Bool-Abfrage für Represents verwendet eine Mehrfeld-Kombinationsabfrage. In der Must-Klausel verwenden wir zwei Match-Klauseln, um das Feld „Titel“ bzw. das Feld „Autor“ abzugleichen. Dies bedeutet, dass nur Dokumente abgerufen werden, die beide Bedingungen erfüllen.

7. Suchergebnisse verarbeiten
Die Suchergebnisse umfassen alle Dokumente, die die Abfragebedingungen erfüllen. Fügen Sie den folgenden Codeausschnitt in den PHP-Code ein, um die Suchergebnisse zu verarbeiten:

foreach ($response['hits']['hits'] as $hit) {

echo $hit['_source']['title'];
echo $hit['_source']['author'];
echo $hit['_source']['category'];
echo "

";
}

8. Zusammenfassung
In In diesem Artikel haben wir beschrieben, wie man kombinierte Mehrfeldabfragen mithilfe der PHP-Elasticsearch-Bibliothek implementiert. Wir haben die Schritte zum Installieren und Konfigurieren von Elasticsearch, zum Installieren der PHP-Elasticsearch-Bibliothek, zum Herstellen einer Verbindung zu Elasticsearch, zum Erstellen von Indizes, zum Hinzufügen von Dokumenten und zum Durchführen von Mehrfeld-Abfragen besprochen Mithilfe der PHP-Elasticsearch-Bibliothek können wir Elasticsearch einfach manipulieren und verschiedene Suchanforderungen erfüllen . Ich hoffe, es wird dir helfen

Das obige ist der detaillierte Inhalt vonWie verwende ich PHP Elasticsearch, um eine kombinierte Abfrage mit mehreren Feldern zu implementieren?. 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