Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan PHP dan Xunsearch untuk melaksanakan pengisihan dan penapisan pintar hasil carian

Cara menggunakan PHP dan Xunsearch untuk melaksanakan pengisihan dan penapisan pintar hasil carian

PHPz
PHPzasal
2023-07-29 11:37:451540semak imbas

Cara menggunakan PHP dan Xunsearch untuk mencapai pengisihan dan penapisan pintar hasil carian

Enjin carian memainkan peranan penting dalam aplikasi Internet moden, dan ia boleh membantu pengguna mencari dengan cepat perkara yang mereka perlukan daripada jumlah data yang besar. Untuk tapak web yang besar, pengisihan pintar dan penapisan hasil carian adalah fungsi yang amat diperlukan, yang boleh membantu pengguna mendapatkan hasil yang mereka perlukan dengan lebih tepat. Artikel ini akan memperkenalkan cara menggunakan PHP dan perpustakaan enjin carian Xunsearch untuk mencapai pengisihan dan penapisan pintar hasil carian.

1. Pemasangan dan konfigurasi Xunsearch

Xunsearch ialah pustaka enjin carian teks penuh yang berkuasa berdasarkan pembahagian perkataan bahasa Cina Ia menyepadukan fungsi carian yang kaya dan mempunyai prestasi tinggi serta kebolehskalaan. Pertama, anda perlu memasang Xunsearch Anda boleh melakukan langkah berikut:

  1. Muat turun pakej pemasangan daripada tapak web rasmi Xunsearch dan ekstrak ke direktori yang sesuai.
  2. Jalankan skrip install.sh untuk memasang dan ikut gesaan untuk menyelesaikan proses pemasangan.
  3. Ubah suai fail konfigurasi sdk/php/app/demo.ini dan tetapkan kaedah sambungan pangkalan data dan laluan penjimatan indeks.

2. Pengindeksan

Pengindeksan ialah langkah utama untuk enjin carian Ia membolehkan enjin carian cepat mencari kandungan yang diperlukan daripada jumlah data yang besar. Berikut ialah contoh kod untuk mewujudkan indeks Xunsearch:

<?php
require_once('/path/to/XS.php');

$xs = new XS('demo'); // 连接到名为 demo 的搜索服务
$index = $xs->index; // 获取索引对象

$index->clean(); // 清空原有索引
$index->beginRebuild(); // 开始重建索引

// 从数据库中获取需要建立索引的数据
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM articles');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $doc = new XSDocument();
    $doc->setFields($row);
    $index->add($doc); // 将文档添加到索引中
}

$index->endRebuild(); // 结束重建索引

3. Pengisihan hasil carian yang bijak

Enjin carian perlu mengisih hasil carian untuk memaparkan kandungan yang paling relevan kepada pengguna. Xunsearch menyediakan pelbagai algoritma pengisihan, termasuk pengisihan TF-IDF lalai, pengisihan mengikut perkaitan, pengisihan mengikut masa, dsb. Berikut adalah contoh kod pengisihan berdasarkan perkaitan:

<?php
require_once('/path/to/XS.php');

$xs = new XS('demo'); // 连接到名为 demo 的搜索服务
$search = $xs->search; // 获取搜索对象
$search->setFuzzy(true); // 启用模糊搜索

$query = 'PHP语言'; // 用户的搜索关键词
$search->setQuery($query); // 设置搜索关键词

$search->setLimit(10); // 设置每页显示的结果数量
$search->setSort('relevance'); // 设置按相关度排序

$docs = $search->search(); // 执行搜索并获取结果

foreach ($docs as $doc) {
    echo $doc->title . "<br>";
    echo $doc->content . "<br>";
}

4. Penapisan hasil carian

Selain pengisihan, enjin carian juga perlu menyediakan fungsi penapisan supaya pengguna dapat memperoleh hasil yang diperlukan dengan lebih tepat. Xunsearch menyediakan pelbagai kaedah untuk menetapkan keadaan penapis, seperti menetapkan julat medan tertentu, menetapkan penapisan berbilang nilai untuk berbilang medan, dsb. Berikut ialah contoh kod untuk menetapkan penapisan julat medan:

<?php
require_once('/path/to/XS.php');

$xs = new XS('demo'); // 连接到名为 demo 的搜索服务
$search = $xs->search; // 获取搜索对象

$search->setFuzzy(true); // 启用模糊搜索
$search->setLimit(10); // 设置每页显示的结果数量

$query = 'PHP语言'; // 用户的搜索关键词
$search->setQuery($query); // 设置搜索关键词

// 设置字段范围筛选
$search->addRange('publish_time', '2019-01-01 00:00:00', '2020-01-01 23:59:59');

$docs = $search->search(); // 执行搜索并获取结果

foreach ($docs as $doc) {
    echo $doc->title . "<br>";
    echo $doc->content . "<br>";
}

Melalui contoh kod di atas, kita boleh melihat cara menggunakan PHP dan Xunsearch untuk mencapai pengisihan dan penapisan pintar hasil carian. Fungsi sedemikian boleh meningkatkan pengalaman pengguna dengan berkesan dan memudahkan pengguna mencari kandungan yang mereka perlukan dengan cepat. Sudah tentu, Xunsearch juga menyokong lebih banyak fungsi carian dan boleh dilaraskan serta dikembangkan mengikut keperluan khusus.

Atas ialah kandungan terperinci Cara menggunakan PHP dan Xunsearch untuk melaksanakan pengisihan dan penapisan pintar hasil carian. 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

Artikel berkaitan

Lihat lagi