Membangunkan fungsi autolengkap carian menggunakan PHP dan Carian Manticore

WBOY
Lepaskan: 2023-08-07 22:54:01
asal
1419 orang telah melayarinya

Membangunkan fungsi auto-lengkap carian menggunakan PHP dan Manticore Search

Pengenalan:
Dalam era Internet hari ini, fungsi carian telah menjadi bahagian penting dalam banyak aplikasi dan tapak web. Fungsi autolengkap carian ialah elemen utama untuk meningkatkan pengalaman pengguna dan ketepatan carian. Artikel ini akan memperkenalkan cara menggunakan PHP dan Carian Manticore untuk membangunkan fungsi autolengkap carian untuk membantu pengguna mencari perkara yang mereka perlukan dengan lebih cepat.

1. Apakah itu Manticore Search?
Manticore Search ialah perisian carian teks penuh berdasarkan enjin carian sumber terbuka Sphinx. Berbanding dengan enjin carian tradisional, Manticore Search menyediakan pengindeksan dan kelajuan carian yang lebih pantas, toleransi kesalahan dan kebolehskalaan yang lebih baik. Ia menyokong carian teks penuh, carian faceted, carian lokasi geografi dan fungsi lain, dan sesuai untuk pelbagai senario aplikasi.

2. Buat indeks Carian Manticore
Pertama, kita perlu mencipta indeks Carian Manticore untuk menyimpan kandungan yang hendak dicari. Indeks bernama "autolengkap" boleh dibuat melalui arahan berikut:

index autocomplete
{
    type = rt
    rt_mem_limit = 512M
    path = /var/lib/manticore/autocomplete
    charset_table = utf-8
    min_prefix_len = 2
    min_word_len = 2
}
Salin selepas log masuk

Dalam indeks ini, rt_mem_limit menentukan had memori, laluan menentukan laluan penyimpanan fail indeks, charset_table menentukan set aksara, min_prefix_len dan min_word_len menentukan Awalan minimum panjang dan panjang perkataan minimum.

3. Tambah dokumen ke indeks
Seterusnya, kita perlu menambah dokumen yang hendak dicari ke indeks. Ini boleh dicapai melalui contoh kod PHP berikut:

<?php
$client = new SphinxClient();
$client->setServer('localhost', 9312);
$client->setMatchMode(SPH_MATCH_ANY);
$client->setFieldWeights(array('title' => 10, 'content' => 1));

$documents = array(
    array(
        'id' => 1,
        'title' => 'PHP开发',
        'content' => 'PHP是一种广泛使用的开源脚本语言,它特别适用于Web开发。',
    ),
    array(
        'id' => 2,
        'title' => 'Manticore Search',
        'content' => 'Manticore Search是一个基于Sphinx的全文搜索软件,提供了更快的索引和搜索速度。',
    ),
    // 添加更多文档...
);

foreach ($documents as $document) {
    $client->addDocument($document['title'], $document['content'], $document['id']);
}

$result = $client->runQueries();
?>
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kelas SphinxClient, iaitu kelas alat untuk PHP berinteraksi dengan Manticore Search. Kami menetapkan alamat pelayan dan nombor port, menetapkan mod padanan kepada mana-mana padanan, menetapkan berat tajuk kepada 10 dan berat kandungan kepada 1. Kemudian, dokumen yang hendak dicari ditambah pada indeks satu demi satu melalui gelung.

4. Laksanakan fungsi auto-lengkap carian
Untuk melaksanakan fungsi auto-lengkap carian, kami boleh menggunakan ciri indeks masa nyata Carian Manticore. Pengindeksan langsung boleh dikemas kini dan dicari dengan cepat, membolehkan maklum balas carian masa nyata.

Pelengkapan automatik carian boleh dicapai melalui contoh kod PHP berikut:

<?php
$keyword = $_GET['keyword'];

$client->setMatchMode(SPH_MATCH_EXTENDED2);
$client->limit(0, 5); // 给出最多5个自动补全结果

$client->resetFilters();
$client->setFilter('prefix', '', array($keyword));

$result = $client->runQueries();
$suggestions = $result[0]['words'];

foreach ($suggestions as $suggestion) {
    echo $suggestion['word'];
}
?>
Salin selepas log masuk

Dalam kod ini, kami memperoleh kata kunci carian yang dimasukkan oleh pengguna melalui permintaan GET. Kemudian, tetapkan mod padanan kepada padanan lanjutan melalui kaedah setMatchMode dan tetapkan maksimum 5 hasil autolengkap untuk dikembalikan melalui kaedah had. Kemudian, gunakan kaedah setFilter untuk mengehadkan istilah carian kepada hasil yang diawali dengan kata kunci. Akhir sekali, pertanyaan carian dilaksanakan melalui kaedah runQueries dan keputusan cadangan kata kunci diperolehi. Kemudian, gunakan gelung foreach untuk mengeluarkan cadangan kata kunci satu demi satu.

Ringkasan:
Menggunakan Carian PHP dan Manticore, anda boleh melaksanakan fungsi autolengkap carian dengan mudah. Dengan mencipta indeks Carian Manticore dan menambah dokumen, dan kemudian menggunakan indeks masa nyata dan pernyataan pertanyaan carian khusus, anda boleh melaksanakan fungsi autolengkap carian dengan cepat. Ini akan meningkatkan pengalaman pengguna dan membantu pengguna mencari perkara yang mereka perlukan dengan lebih cepat. Semoga artikel ini dapat membantu anda!

Atas ialah kandungan terperinci Membangunkan fungsi autolengkap carian menggunakan PHP dan Carian Manticore. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!