Membangunkan fungsi cadangan carian menggunakan PHP dan Manticore Search
Dalam tapak web dan aplikasi moden, fungsi carian ialah komponen yang sangat penting. Untuk meningkatkan pengalaman pengguna, ciri cadangan carian digunakan secara meluas. Fungsi cadangan carian boleh memberikan cadangan carian yang berkaitan dan penyiapan automatik berdasarkan kata kunci yang dimasukkan oleh pengguna. Dalam artikel ini, kami akan membangunkan ciri cadangan carian mudah menggunakan PHP dan Carian Manticore.
Manticore Search ialah versi yang ditulis semula berdasarkan enjin carian sumber terbuka Sphinx, yang menyediakan prestasi yang lebih tinggi dan ciri yang lebih kaya. Ia menyokong fungsi seperti carian teks penuh, pengindeksan masa nyata dan carian geolokasi. Kami akan menggunakan Carian Manticore untuk membina ciri cadangan carian yang pantas dan cekap.
Pertama, kita perlu memasang Manticore Search pada pelayan. Ia boleh dipasang dengan arahan berikut:
$ sudo apt-get update $ sudo apt-get install manticoresearch
Selepas pemasangan selesai, kita perlu mencipta indeks untuk menyimpan data carian kita. Dalam Carian Manticore, indeks ialah koleksi dokumen, setiap satu mengandungi satu atau lebih medan. Kita boleh mencipta indeks yang dipanggil "cadangan" menggunakan arahan berikut:
$ mysql -P 9306 mysql> CREATE TABLE suggestions(title TEXT, suggestion BIGINT) INDEX title; mysql> quit
Seterusnya, kita boleh menggunakan PHP untuk berinteraksi dengan Manticore Search. Mula-mula, kita perlu memasang pakej manticoresearch/manticoresearch
. Pemasangan boleh diselesaikan melalui Komposer: manticoresearch/manticoresearch
包。可以通过Composer来完成安装:
$ composer require manticoresearch/manticoresearch
安装完成后,我们可以编写PHP代码来实现搜索建议功能。首先,我们需要建立与Manticore Search的连接:
<?php require 'vendor/autoload.php'; use ManticoresearchClient; $client = new Client(); $client->connect();
然后,我们可以编写一个函数来获取搜索建议。该函数将根据用户输入的关键词,在Manticore Search中执行搜索查询,并返回相关的搜索建议:
function getSuggestions($client, $query) { $params = [ 'index' => 'suggestions', 'body' => [ 'query' => [ 'match' => [ 'title' => [ 'query' => $query, 'operator' => 'and' ] ] ], 'suggest' => [ 'suggestion' => [ 'prefix' => $query, 'completion' => [ 'field' => 'suggestion' ] ] ] ] ]; $response = $client->search($params); $suggestions = []; foreach ($response['suggest']['suggestion'][0]['options'] as $option) { $suggestions[] = $option['text']; } return $suggestions; }
最后,我们可以编写一个简单的代码来测试搜索建议功能:
$query = $_GET['q']; if ($query) { $suggestions = getSuggestions($client, $query); foreach ($suggestions as $suggestion) { echo $suggestion . "<br>"; } }
在上面的示例中,我们使用$_GET['q']
来获取用户在搜索框中输入的关键词。然后,我们调用getSuggestions
rrreee
rrreee
Kemudian, kita boleh menulis fungsi untuk mendapatkan cadangan carian. Fungsi ini akan melaksanakan pertanyaan carian dalam Carian Manticore berdasarkan kata kunci yang dimasukkan oleh pengguna dan mengembalikan cadangan carian yang berkaitan:rrreee
Akhirnya, kita boleh menulis kod mudah untuk menguji fungsi cadangan carian: 🎜rrreee🎜 Dalam contoh di atas , kami menggunakan$_GET['q']
untuk mendapatkan kata kunci yang dimasukkan oleh pengguna dalam kotak carian. Kemudian, kami memanggil fungsi getSuggestions
untuk mendapatkan cadangan carian yang berkaitan dan memaparkannya pada halaman. 🎜🎜Ringkasan🎜🎜Dengan menggunakan PHP dan Manticore Search, kami boleh membangunkan fungsi cadangan carian yang pantas dan cekap dengan mudah. Manticore Search menyediakan carian teks penuh yang berkuasa dan keupayaan autolengkap, membolehkan kami memberikan pengalaman carian yang hebat dalam aplikasi. Saya harap artikel ini akan membantu anda mempelajari dan menggunakan Carian Manticore untuk membangunkan cadangan carian! 🎜Atas ialah kandungan terperinci Membangunkan fungsi cadangan carian menggunakan PHP dan Carian Manticore. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!