PHP dan Pembangunan Carian Manticore: Membina Enjin Carian Berasaskan Tag

WBOY
Lepaskan: 2023-08-06 08:40:01
asal
1462 orang telah melayarinya

Pembangunan Carian PHP dan Manticore: Membina enjin carian berasaskan tag

Enjin carian ialah bahagian penting Internet hari ini, yang boleh membuat pertanyaan, memadankan dan menyampaikan maklumat yang diperlukan oleh pengguna daripada jumlah data yang besar dengan pantas. Walau bagaimanapun, enjin carian tradisional selalunya hanya menyediakan fungsi perolehan teks penuh asas, yang tidak mencukupi untuk carian dan penapisan data yang tepat. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Carian PHP dan Manticore untuk membina enjin carian berasaskan teg untuk memberikan pengalaman carian yang lebih tepat dan cekap.

Manticore Search ialah enjin carian teks penuh yang dibangunkan berdasarkan enjin carian sumber terbuka Sphinx. Ia bukan sahaja menyediakan keupayaan carian teks penuh yang pantas dan berkuasa, tetapi juga menyokong kemas kini indeks masa nyata dan sintaks pertanyaan yang kompleks. PHP ialah bahasa skrip sebelah pelayan yang popular dengan pelbagai aplikasi dan perpustakaan pembangunan yang kaya.

Sebelum kita mula, kita perlu memasang Manticore Search. Ia boleh dipasang dengan mengikuti langkah-langkah:

  1. Muat turun dan pasang Manticore Search:

    $ wget https://github.com/manticoresoftware/manticoresearch/releases/download/3.6.0/manticore-3.6.0-200714-58157c26-release.tar.gz
    $ tar -xvf manticore-3.6.0-200714-58157c26-release.tar.gz
    $ cd manticore-3.6.0/bin
    $ ./searchd
    Salin selepas log masuk
  2. Buat indeks:

    $ ./searchd
    $ mysql -P9306 -e "CREATE TABLE documents (id int, title text, content text, tags multi)"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (1, 'Document 1', 'This is the content of document 1', 'php, search')"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (2, 'Document 2', 'This is the content of document 2', 'mysql, database')"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (3, 'Document 3', 'This is the content of document 3', 'php, database')"
    Salin selepas log masuk

Sekarang kami telah menyelesaikan pemasangan dan penciptaan indeks bagi Manticore Search, kami akan bergerak pada Manticore Search, kepada proses penulisan kod PHP.

Pertama, kita perlu memasang sambungan Carian Manticore untuk PHP. Ia boleh dipasang dengan mengikuti langkah-langkah:

  1. Muat turun dan susun sambungan:

    $ git clone https://github.com/manticoresoftware/php-manticore.git
    $ cd php-manticore
    $ phpize
    $ ./configure
    $ make
    $ sudo make install
    Salin selepas log masuk
  2. Dayakan sambungan dalam fail php.ini:

    extension=manticore.so
    Salin selepas log masuk

Selepas melengkapkan langkah PHP, kita boleh mula menulis langkah di atas. kod untuk membina enjin carian berasaskan tag. Berikut ialah contoh kod:

<?php
$host = 'localhost';
$port = 9306;
$index = 'default';
$query = 'php';

// 连接Manticore Search
$conn = new ManticoreSearchConnection();
$conn->connect($host, $port);

// 创建查询
$search = new ManticoreSearchSearch($conn);
$search->index($index);
$search->limit(10);
$search->setMatchMode(ManticoreSearchSearch::SPH_MATCH_EXTENDED);

// 添加标签过滤条件
$search->setFilter('tags', [$query], true);

// 发送查询请求
$result = $search->query('');

// 处理查询结果
if (!empty($result['matches'])) {
    foreach ($result['matches'] as $match) {
        echo 'ID: ' . $match['id'] . '<br>';
        echo 'Title: ' . $match['attrs']['title'] . '<br>';
        echo 'Content: ' . $match['attrs']['content'] . '<br>';
        echo 'Tags: ' . $match['attrs']['tags'] . '<br><br>';
    }
} else {
    echo 'No results found.';
}

// 关闭连接
$conn->close();
Salin selepas log masuk

Kod di atas menunjukkan cara menggunakan Carian Manticore untuk carian berasaskan teg. Kami mula-mula mencipta objek sambungan melalui kelas ManticoreSearchConnection, dan kemudian mencipta objek pertanyaan melalui kelas ManticoreSearchSearch. Kami menentukan indeks pertanyaan dan bilangan maksimum hasil yang dikembalikan dengan menetapkan atribut indeks dan had. Seterusnya, kami menetapkan kriteria penapis untuk teg supaya hanya dokumen yang mengandungi teg tersebut akan dikembalikan.

Akhir sekali, kami menghantar permintaan pertanyaan dengan menghubungi kaedah pertanyaan dan memproses hasil yang dikembalikan. Jika hasil pertanyaan tidak kosong, kami boleh merentasi tatasusunan padanan dan mengeluarkan ID dokumen, tajuk, kandungan dan teg yang sepadan. Jika hasil pertanyaan kosong, "Tiada hasil ditemui."

Melalui langkah di atas, kami berjaya membina enjin carian berasaskan tag menggunakan PHP dan Carian Manticore. Melalui struktur indeks yang munasabah dan keadaan pertanyaan, kami boleh mencapai fungsi carian yang lebih tepat dan cekap untuk memenuhi keperluan pengguna yang diperibadikan. Saya harap artikel ini akan membantu pembaca yang menggunakan PHP dan Manticore Search untuk pembangunan enjin carian.

Atas ialah kandungan terperinci PHP dan Pembangunan Carian Manticore: Membina Enjin Carian Berasaskan Tag. 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!