Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan PHP dan coreseek untuk melaksanakan fungsi carian strategi perjalanan pintar

Gunakan PHP dan coreseek untuk melaksanakan fungsi carian strategi perjalanan pintar

王林
王林asal
2023-08-06 11:07:43963semak imbas

Gunakan PHP dan coreseek untuk merealisasikan fungsi carian panduan perjalanan pintar

1 Pengenalan
Dengan perkembangan pesat Internet, perjalanan secara beransur-ansur menjadi sebahagian daripada kehidupan orang ramai. Laman web panduan perjalanan menyediakan orang ramai dengan pelbagai maklumat perjalanan dan maklumat panduan untuk membantu mereka merancang dan menikmati perjalanan mereka. Walau bagaimanapun, apabila maklumat strategi menjadi lebih banyak dan pelbagai, cara menyediakan pengguna dengan fungsi carian yang lebih pintar menjadi satu cabaran.

Untuk menyelesaikan masalah ini, kami boleh menggunakan PHP dan coreseek, enjin carian teks penuh, untuk membina fungsi carian panduan perjalanan pintar.

2. Pasang dan konfigurasikan coreseek
Pertama, kita perlu memasang dan mengkonfigurasi coreseek. coreseek ialah perkhidmatan carian berdasarkan enjin carian teks penuh Sphinx, yang boleh menyediakan keupayaan carian teks penuh yang cekap. Kami boleh memuat turun versi terkini coreseek dari laman web rasmi coreseek (http://www.coreseek.cn/).

Proses memasang coreseek agak rumit, dan anda perlu mengikuti dokumentasi coreseek rasmi. Mula-mula, kita perlu memasang Sphinx, kemudian menyusun dan memasang sambungan PHP coreseek. Akhir sekali, konfigurasikan fail konfigurasi coreseek dan cipta indeks Sphinx. Selepas pemasangan dan konfigurasi selesai, kami boleh menggunakan API yang disediakan oleh coreseek untuk melakukan carian teks penuh.

3 Cipta pangkalan data dan jadual
Kita perlu mencipta pangkalan data MySQL dan membuat jadual dalam pangkalan data untuk menyimpan maklumat panduan perjalanan. Sebagai contoh, kami mencipta pangkalan data bernama "travel_guide" dan mencipta jadual bernama "guides" dalam pangkalan data. Struktur jadual adalah seperti berikut:

CIPTA JADUAL panduan (guides (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL DEFAULT '',
content text NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

四、插入数据
在"guides"表中插入一些旅行攻略信息的示例数据。例如,我们插入三条数据,分别是关于北京、上海和杭州的旅行攻略。

INSERT INTO guides (title, content id int(11) unsigned NOT NULL AUTO_INCREMENT,
title varchar(255 ) BUKAN NULL LALAI '',
kandungan teks BUKAN NULL,
KUNCI UTAMA (id)

) ENJIN=InnoDB CARSET LAALA=utf8;


4 dalam "panduan "Masukkan beberapa data sampel maklumat panduan perjalanan ke dalam jadual. Sebagai contoh, kami memasukkan tiga keping data, iaitu strategi perjalanan untuk Beijing, Shanghai dan Hangzhou.

MASUKKAN KE DALAM panduan (tajuk, kandungan) NILAI
('Pemandu Perjalanan Beijing', 'Beijing ialah ibu negara China dan mempunyai sejarah yang panjang dan budaya yang kaya '),

('Shanghai Travel Guide', 'Shanghai ialah pusat ekonomi China dengan landskap bandar yang moden.'),

('Hangzhou Travel Guide', 'Hangzhou ialah tarikan pelancong di China, Terdapat Kawasan Pemandangan Tasik Barat yang indah ');

5. Laksanakan fungsi carian
Kini, kita boleh menggunakan PHP dan coreseek untuk melaksanakan fungsi carian panduan perjalanan pintar. Pertama, kita perlu menyambung ke perkhidmatan coreseek dalam kod PHP dan menentukan kata kunci carian.

ef975dfb62b6a2db7c58eb9ad9410bffSetServer("localhost", 9312) ;

$cl->SetMatchMode(SPH_MATCH_EXTENDED);

$cl->SetLimits(0, 10);

$result = $cl->Query($key, "guides");

$result === false) {

echo "搜索失败:" . $cl->GetLastError();

} else {

echo "共搜索到" . $result['total'] . "条结果:";

foreach ($result['matches'] as $match) {
    echo "ID:" . $match['id'] . ",标题:" . $match['attrs']['title'] . ",内容:" . $match['attrs']['content'] . "<br>";
}

}

?>

Dalam kod, kami mula-mula memperkenalkan fail perpustakaan PHP coreseek (sphinxapi.php). Kemudian, nyatakan kata kunci carian ($key = 'panduan perjalanan'). Seterusnya, cipta objek SphinxClient dan tetapkan alamat dan port untuk menyambung ke perkhidmatan coreseek.


Dengan memanggil kaedah SetMatchMode dan SetLimits, kami boleh menetapkan mod carian dan had hasil carian (di sini, maksimum 10 keputusan dikembalikan). Akhir sekali, kaedah Pertanyaan dipanggil untuk melakukan carian.

Jika carian berjaya, kita boleh mendapatkan maklumat hasil carian melalui pembolehubah $result. Sebagai contoh, gunakan $result['total'] untuk mendapatkan jumlah bilangan hasil carian; gunakan $result['matches'] untuk mendapatkan maklumat terperinci bagi setiap hasil, termasuk ID dan tajuk.

6. Paparan keputusan

Akhir sekali, kami boleh memaparkan hasil carian di halaman web. Katakan kita menggunakan kod HTML berikut untuk memaparkan hasil carian:

100db36a723c770d327fc0aef2ce13b1

93f0f5c25f18dab9d176bd4f6de5d30e

<title>旅行攻略搜索结果</title>

9c3bca370b5104690d9ef395f2c5f8d1

6c04bd5ca3fcae76e30b72ad730ca86d

<h1>旅行攻略搜索结果</h1>

<ul>
<?php foreach ($result['matches'] as $match) { ?>
    <li>
        <h2><?php echo $match['attrs']['title']; ?></h2>
        <p><?php echo $match['attrs']['content']; ?></p>
    </li>
<?php } ?>
</ul>

36cc49f0c466276486e50c850b7e4956/html 🎜 🎜Dalam halaman web ini, kami menggunakan senarai tidak tersusun untuk memaparkan hasil carian. Dengan menggelung melalui tatasusunan $result['matches'], kita boleh mengulangi setiap hasil dan memaparkan tajuk dan kandungan dalam item senarai. 🎜🎜Dengan mengakses halaman web, kita boleh melihat halaman hasil carian Setiap item senarai mengandungi tajuk dan kandungan untuk memudahkan pengguna melihat dan memilih. 🎜🎜Ringkasnya, menggunakan PHP dan coreseek boleh merealisasikan fungsi carian strategi perjalanan pintar. Dengan mengkonfigurasi coreseek dan menggunakan API yang disediakannya, kami boleh melakukan carian teks penuh dengan cepat dan cekap. Ini menyediakan alat carian yang lebih pintar dan mudah untuk tapak web panduan perjalanan, memberikan pengguna pengalaman perjalanan yang lebih baik. 🎜

Atas ialah kandungan terperinci Gunakan PHP dan coreseek untuk melaksanakan fungsi carian strategi perjalanan pintar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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