Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan fungsi cadangan carian menggunakan PHP dan Elasticsearch
Cara menggunakan PHP dan Elasticsearch untuk melaksanakan fungsi cadangan carian
Dalam era ledakan maklumat Internet hari ini, enjin carian telah menjadi salah satu cara penting untuk kita mendapatkan maklumat. Walau bagaimanapun, apabila pengguna memasukkan kata kunci carian, selalunya terdapat ralat ejaan atau pertanyaan yang samar-samar Dalam kes ini, fungsi cadangan carian diperlukan untuk menyediakan kata kunci yang mungkin diminati pengguna, dengan itu meningkatkan pengalaman pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk melaksanakan fungsi cadangan carian, dan memberikan contoh kod yang sepadan.
Pertama, kita perlu memasang dan mengkonfigurasi Elasticsearch. Anda boleh memuat turun dan memasangnya daripada tapak web rasmi Elasticsearch, kemudian ubah suai fail elasticsearch.yml untuk menetapkan nama kluster, IP mengikat dan konfigurasi lain. Selepas memulakan Elasticsearch, anda boleh menyambung ke Elasticsearch dan melakukan operasi berkaitan melalui arahan curl atau klien PHP yang disediakan oleh Elasticsearch.
Seterusnya, kami akan menulis kod menggunakan PHP untuk melaksanakan fungsi cadangan carian. Pertama, anda perlu mengimport perpustakaan klien PHP Elasticsearch Anda boleh menggunakan Komposer untuk pengurusan pergantungan. Tambahkan kandungan berikut pada fail composer.json dalam direktori akar projek:
{ "require": { "elasticsearch/elasticsearch": "^7.0" } }
Kemudian laksanakan perintah composer install
untuk memasang dependencies. composer install
命令来安装依赖。
下面是一个简单的PHP代码示例,用于连接Elasticsearch,并设置相关配置:
<?php require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build();
接下来,我们需要创建一个Elasticsearch索引,并添加一些示例数据。以下代码示例展示了如何创建一个名为suggestion的索引,并添加一些文档:
<?php $params = [ 'index' => 'suggestion', 'body' => [ 'mappings' => [ 'properties' => [ 'text' => [ 'type' => 'text' ] ] ] ] ]; $response = $client->indices()->create($params); $params = [ 'index' => 'suggestion', 'body' => [ ['text' => 'apple'], ['text' => 'banana'], ['text' => 'cherry'], ['text' => 'durian'] ] ]; $response = $client->index($params);
现在我们可以编写代码来实现搜索建议功能。以下是一个简单的搜索建议的PHP代码示例:
<?php $searchText = $_GET['searchText']; $params = [ 'index' => 'suggestion', 'body' => [ 'suggest' => [ 'suggestion' => [ 'prefix' => $searchText, 'completion' => [ 'field' => 'text', 'size' => 10 ] ] ] ] ]; $response = $client->search($params); $suggestions = $response['suggest']['suggestion'][0]['options']; foreach ($suggestions as $suggest) { echo $suggest['text'] . " "; }
以上代码中,我们通过$_GET['searchText']
rrreee
Seterusnya, kita perlu mencipta indeks Elasticsearch dan menambah beberapa sampel data. Contoh kod berikut menunjukkan cara membuat indeks yang dipanggil cadangan dan menambah beberapa dokumen:rrreee
Kini kita boleh menulis kod untuk melaksanakan fungsi cadangan carian. Berikut ialah contoh kod PHP ringkas bagi cadangan carian: 🎜rrreee🎜Dalam kod di atas, kami memperoleh kata kunci carian yang dimasukkan oleh pengguna melalui$_GET['searchText']
, dan kemudian gunakan carian fungsi cadangan Elasticsearch untuk mendapatkan kata-kata cadangan yang sepadan. Akhirnya, perkataan cadangan yang diperolehi adalah output kepada pengguna. 🎜🎜Dengan contoh kod di atas, kami boleh melaksanakan fungsi cadangan carian berdasarkan Elasticsearch dengan mudah. Sudah tentu, berdasarkan keperluan sebenar, kami boleh mengoptimumkan lagi logik dan antara muka cadangan carian untuk meningkatkan pengalaman pengguna. 🎜🎜Untuk meringkaskan, artikel ini memperkenalkan cara menggunakan PHP dan Elasticsearch untuk melaksanakan fungsi cadangan carian dan memberikan contoh kod yang sepadan. Diharapkan para pembaca dapat memahami prinsip asas dan kaedah pelaksanaan cadangan carian melalui artikel ini, agar dapat diaplikasi dan dikembangkan dalam projek sebenar. 🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi cadangan carian menggunakan PHP dan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!