Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan fungsi auto-lengkap dalam PHP dan Elasticsearch

Bagaimana untuk melaksanakan fungsi auto-lengkap dalam PHP dan Elasticsearch

王林
王林asal
2023-07-07 17:24:07964semak imbas

Cara melaksanakan fungsi autolengkap dalam PHP dan Elasticsearch

Pengenalan:
Fungsi autolengkap ialah salah satu ciri biasa dalam aplikasi web moden. Ia meningkatkan pengalaman pengguna dan ketepatan carian dengan memberikan petua dan cadangan yang berkaitan berdasarkan input pengguna. Elasticsearch ialah enjin carian sumber terbuka yang berkuasa yang menyediakan keupayaan carian teks penuh yang pantas, berskala dan cekap. Menggabungkan PHP dan Elasticsearch, kami boleh melaksanakan fungsi autolengkap dengan mudah.

Langkah:

  1. Pasang Elasticsearch
    Pertama, pastikan Elasticsearch dipasang pada pelayan anda. Proses pemasangan akan berbeza-beza bergantung pada sistem pengendalian. Anda boleh merujuk kepada dokumentasi rasmi Elasticsearch untuk pemasangan dan konfigurasi.
  2. Mencipta indeks dan pemetaan
    Dalam Elasticsearch, kita perlu menyimpan data dalam indeks dan kemudian menggunakan pemetaan untuk menentukan jenis dan sifat medan. Kita boleh membuat indeks dan pemetaan menggunakan API REST Elasticsearch atau perpustakaan klien Elasticsearch untuk 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';
}
?>

Coretan kod di atas mencipta indeks yang dipanggil my_index dan mentakrifkan medan yang dipanggil title. type ditetapkan kepada text, menunjukkan bahawa medan ini akan menyimpan data teks. penganalisis ditetapkan kepada standard, yang bermaksud menggunakan tokenizer standard untuk carian teks penuh. 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

    Mengimport data🎜Selepas indeks dan pemetaan dibuat, kita perlu mengimport data ke dalam Elasticsearch untuk carian. Kami boleh memasukkan data menggunakan API REST Elasticsearch atau perpustakaan klien Elasticsearch untuk PHP. 🎜🎜rrreee🎜Coretan kod di atas memasukkan dokumen ke dalam indeks my_index dengan nilai medan title dokumen itu ialah "Elasticsearch". 🎜
      🎜Melaksanakan fungsi autolengkap🎜Kini, kami mempunyai data dan indeks. Seterusnya, kita perlu menulis kod PHP untuk melaksanakan ciri autolengkap. 🎜🎜rrreee🎜Coretan kod di atas menggunakan API cadang untuk mendapatkan senarai cadangan yang sepadan dengan teks input. Dalam medan text kami menghantar input pengguna. Dalam medan completion, kami menentukan medan yang memerlukan kefungsian autolengkap. 🎜🎜Ringkasan: 🎜Dengan menggabungkan PHP dan Elasticsearch, kami boleh melaksanakan fungsi autolengkap dengan mudah. Pertama, kita perlu memasang Elasticsearch dan mencipta indeks dan pemetaan. Kami kemudiannya boleh memasukkan data dan menggunakan API cadangkan untuk mendapatkan cadangan autolengkap. Langkah-langkah dan kod sampel yang dinyatakan di atas akan membantu anda memahami cara melaksanakan fungsi autolengkap dalam PHP menggunakan Elasticsearch. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi auto-lengkap dalam PHP dan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn