Heim >Backend-Entwicklung >PHP-Tutorial >So implementieren Sie die Autovervollständigungsfunktion in PHP und Elasticsearch

So implementieren Sie die Autovervollständigungsfunktion in PHP und Elasticsearch

王林
王林Original
2023-07-07 17:24:071041Durchsuche

So implementieren Sie die Funktion zur automatischen Vervollständigung in PHP und Elasticsearch

Einführung:
Die Funktion zur automatischen Vervollständigung ist eine der häufigsten Funktionen in modernen Webanwendungen. Es verbessert das Benutzererlebnis und die Suchgenauigkeit, indem es relevante Tipps und Vorschläge basierend auf Benutzereingaben bereitstellt. Elasticsearch ist eine leistungsstarke Open-Source-Suchmaschine, die schnelle, skalierbare und effiziente Volltextsuchfunktionen bietet. Durch die Kombination von PHP und Elasticsearch können wir die Autovervollständigungsfunktion problemlos implementieren.

Schritte:

  1. Elasticsearch installieren
    Stellen Sie zunächst sicher, dass Elasticsearch auf Ihrem Server installiert ist. Der Installationsvorgang variiert je nach Betriebssystem. Informationen zur Installation und Konfiguration finden Sie in der offiziellen Dokumentation von Elasticsearch.
  2. Indizes und Zuordnungen erstellen
    In Elasticsearch müssen wir Daten in einem Index speichern und dann Zuordnungen verwenden, um die Typen und Eigenschaften der Felder zu definieren. Wir können Indizes und Zuordnungen mithilfe der REST-API von Elasticsearch oder der Elasticsearch-Clientbibliothek für PHP erstellen.
<?php
require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

$params = [
    'index' => 'my_index',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => [
                    'type' => 'text',
                    'analyzer' => 'standard',
                ],
            ],
        ],
    ],
];

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

if ($response['acknowledged']) {
    echo 'Index created successfully';
}
?>

Das obige Code-Snippet erstellt einen Index namens my_index und definiert ein Feld namens title. type ist auf text gesetzt, was darauf hinweist, dass in diesem Feld Textdaten gespeichert werden. analyzer ist auf standard eingestellt, was bedeutet, dass der Standard-Tokenizer für die Volltextsuche verwendet wird. my_index 的索引,并定义了一个名为 title 的字段。type 设置为 text,表示这个字段将存储文本数据。analyzer 设置为 standard,表示使用标准分词器进行全文搜索。

  1. 导入数据
    在索引和映射创建好之后,我们需要将数据导入到 Elasticsearch 中以供搜索。我们可以使用 Elasticsearch 的 REST API 或 PHP 的 Elasticsearch 客户端库来插入数据。
<?php
require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

$params = [
    'index' => 'my_index',
    'body' => [
        'title' => 'Elasticsearch',
    ],
];

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

if ($response['result'] == 'created') {
    echo 'Data inserted successfully';
}
?>

上面的代码片段将一个文档插入到 my_index 索引中,文档的 title 字段的值为 "Elasticsearch"。

  1. 实现自动完成功能
    现在,我们已经有了数据和索引。接下来,我们需要编写 PHP 代码来实现自动完成功能。
<?php
require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

$params = [
    'index' => 'my_index',
    'body' => [
        'suggest' => [
            'my_suggestion' => [
                'text' => 'ela',
                'completion' => [
                    'field' => 'title',
                ],
            ],
        ],
    ],
];

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

$suggestions = $response['suggest']['my_suggestion'][0]['options'];

foreach ($suggestions as $suggestion) {
    echo $suggestion['text']."
";
}
?>

上面的代码片段使用 suggest API 来获取与输入文本匹配的建议列表。在 text 字段中,我们传递用户的输入。在 completion 字段中,我们指定需要自动完成功能的字段。

总结:
通过结合 PHP 和 Elasticsearch,我们可以轻松实现自动完成功能。首先,我们需要安装 Elasticsearch 并创建索引和映射。然后,我们可以插入数据并使用 suggest

    Daten importieren🎜Nachdem der Index und die Zuordnung erstellt wurden, müssen wir die Daten für die Suche in Elasticsearch importieren. Wir können Daten mithilfe der REST-API von Elasticsearch oder der Elasticsearch-Clientbibliothek für PHP einfügen. 🎜🎜rrreee🎜Das obige Code-Snippet fügt ein Dokument in den Index my_index ein, wobei der Wert des Felds title des Dokuments „Elasticsearch“ ist. 🎜
      🎜Implementierung der Autovervollständigungsfunktion🎜Jetzt haben wir die Daten und den Index. Als nächstes müssen wir PHP-Code schreiben, um die Autovervollständigungsfunktion zu implementieren. 🎜🎜rrreee🎜Das obige Code-Snippet verwendet die API suggest, um eine Liste von Vorschlägen abzurufen, die mit dem Eingabetext übereinstimmen. Im Feld text übergeben wir die Eingabe des Benutzers. Im Feld Completion geben wir die Felder an, die eine Autovervollständigungsfunktion erfordern. 🎜🎜Zusammenfassung: 🎜Durch die Kombination von PHP und Elasticsearch können wir die Autovervollständigungsfunktion einfach implementieren. Zuerst müssen wir Elasticsearch installieren und Indizes und Zuordnungen erstellen. Anschließend können wir die Daten einfügen und die API suggest verwenden, um Vorschläge zur automatischen Vervollständigung zu erhalten. Die oben genannten Schritte und Beispielcodes helfen Ihnen zu verstehen, wie Sie die Autovervollständigungsfunktion in PHP mithilfe von Elasticsearch implementieren. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Autovervollständigungsfunktion in 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