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:
<?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
,表示使用标准分词器进行全文搜索。
<?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"。
<?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
my_index
dengan nilai medan title
dokumen itu ialah "Elasticsearch". 🎜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!