Maison  >  Article  >  développement back-end  >  Comment implémenter la fonction de saisie semi-automatique dans PHP et Elasticsearch

Comment implémenter la fonction de saisie semi-automatique dans PHP et Elasticsearch

王林
王林original
2023-07-07 17:24:07965parcourir

Comment implémenter la fonction de saisie semi-automatique dans PHP et Elasticsearch

Introduction :
La fonction de saisie semi-automatique est l'une des fonctionnalités courantes des applications Web modernes. Il améliore l'expérience utilisateur et la précision de la recherche en fournissant des conseils et des suggestions pertinents basés sur les entrées de l'utilisateur. Elasticsearch est un puissant moteur de recherche open source qui offre des fonctionnalités de recherche en texte intégral rapides, évolutives et efficaces. En combinant PHP et Elasticsearch, nous pouvons facilement implémenter la fonctionnalité de saisie semi-automatique.

Étapes :

  1. Installer Elasticsearch
    Tout d'abord, assurez-vous qu'Elasticsearch est installé sur votre serveur. Le processus d'installation varie en fonction du système d'exploitation. Vous pouvez vous référer à la documentation officielle d'Elasticsearch pour l'installation et la configuration.
  2. Création d'index et de mappages
    Dans Elasticsearch, nous devons stocker les données dans un index, puis utiliser des mappages pour définir les types et les propriétés des champs. Nous pouvons créer des index et des mappages à l'aide de l'API REST d'Elasticsearch ou de la bibliothèque client Elasticsearch pour PHP.
<?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';
}
?>

L'extrait de code ci-dessus crée un index appelé my_index et définit un champ appelé title. type est défini sur text, indiquant que ce champ stockera les données texte. analyzer est défini sur standard, ce qui signifie utiliser le tokenizer standard pour la recherche en texte intégral. 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

    Importation de données🎜Une fois l'index et le mappage créés, nous devons importer les données dans Elasticsearch pour la recherche. Nous pouvons insérer des données à l'aide de l'API REST d'Elasticsearch ou de la bibliothèque client Elasticsearch pour PHP. 🎜🎜rrreee🎜L'extrait de code ci-dessus insère un document dans l'index my_index avec la valeur du champ title du document étant "Elasticsearch". 🎜
      🎜Implémentation de la fonction de saisie semi-automatique🎜Maintenant, nous avons les données et l'index. Ensuite, nous devons écrire du code PHP pour implémenter la fonctionnalité de saisie semi-automatique. 🎜🎜rrreee🎜L'extrait de code ci-dessus utilise l'API suggest pour obtenir une liste de suggestions qui correspondent au texte saisi. Dans le champ text, nous transmettons la saisie de l'utilisateur. Dans le champ complétion, nous spécifions les champs qui nécessitent une fonctionnalité de saisie semi-automatique. 🎜🎜Résumé : 🎜En combinant PHP et Elasticsearch, nous pouvons facilement implémenter la fonctionnalité de saisie semi-automatique. Tout d’abord, nous devons installer Elasticsearch et créer des index et des mappages. Nous pouvons ensuite insérer les données et utiliser l'API suggest pour obtenir des suggestions de saisie semi-automatique. Les étapes et l'exemple de code indiqués ci-dessus vous aideront à comprendre comment implémenter la fonctionnalité de saisie semi-automatique en PHP à l'aide d'Elasticsearch. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn