Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS

Cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS

WBOY
WBOYasal
2023-08-06 15:03:121177semak imbas

Cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS

Dengan perkembangan pesat Internet, sistem pengurusan kandungan (CMS) telah menjadi bahagian yang sangat penting dalam pembangunan laman web. Untuk sistem CMS, fungsi carian teks penuh amat diperlukan. Melalui carian teks penuh, pengguna boleh mencari pelbagai kandungan dengan mudah di tapak web, meningkatkan pengalaman dan kecekapan pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS dan menyediakan beberapa contoh kod.

1. Prinsip asas dan proses mendapatkan semula teks penuh

Pendapatan teks penuh merujuk pada pemadanan semua kandungan dokumen berdasarkan kata kunci yang dimasukkan oleh pengguna dan mengembalikan hasil carian yang berkaitan. Prinsip dan proses asas adalah seperti berikut:

  1. Simpan dokumen yang memerlukan pengambilan teks penuh ke dalam pangkalan data. Setiap dokumen boleh dianggap sebagai rekod, yang mengandungi tajuk, kandungan, ringkasan dan maklumat lain.
  2. Buat indeks teks penuh dalam pangkalan data, yang merekodkan kata kunci dan maklumat lokasinya dalam dokumen.
  3. Pengguna memasukkan kata kunci untuk mencari, dan program menghantar kata kunci ke modul carian teks penuh.
  4. Modul carian teks penuh mencari dokumen yang sepadan dalam indeks berdasarkan kata kunci dan mengembalikan hasil carian.
  5. Program ini memaparkan dokumen yang berkaitan, perkaitan dan maklumat lain berdasarkan hasil carian.

2. Gunakan PHP untuk melaksanakan fungsi mendapatkan semula teks penuh sistem CMS

Di bawah ini kami akan menggunakan PHP untuk melaksanakan fungsi mendapatkan semula teks penuh sistem CMS jadual pangkalan data

  1. Pertama, kita perlu mencipta jadual pangkalan data untuk menyimpan dokumen yang memerlukan perolehan teks penuh. Struktur jadual boleh ditakrifkan seperti berikut:
  2. CREATE TABLE `articles` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `title` varchar(255) NOT NULL,
      `content` text NOT NULL,
      `created_at` datetime NOT NULL,
      PRIMARY KEY (`id`),
      FULLTEXT KEY `ft_title_content` (`title`,`content`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Masukkan data ujian

  1. Seterusnya, kami memasukkan beberapa data ujian ke dalam pangkalan data:
  2. INSERT INTO `articles` (`title`, `content`, `created_at`) VALUES
    ('PHP全文检索实现', '全文检索是指根据用户输入的关键词,在文档的所有内容中进行匹配,并返回相关的搜索结果。', '2021-01-01'),
    ('MySQL全文检索实现', '全文检索是一种对文本内容进行搜索的技术,可以提高用户的搜索效率。', '2021-02-01'),
    ('Elasticsearch全文检索实现', 'Elasticsearch是一个开源的分布式搜索引擎,提供了全文检索的功能。', '2021-03-01');

Buat fungsi carian teks penuh

  1. Kami boleh mencipta penuh- fungsi carian teks untuk Laksanakan operasi carian teks penuh. Kod khusus adalah seperti berikut:
  2. function search($keywords) {
        $pdo = new PDO('mysql:host=localhost;dbname=your_database_name', 'your_username', 'your_password');
        $keywords = explode(' ', $keywords);
        $keywords = array_map(function($keyword) {
            return '+' . $keyword . '*';
        }, $keywords);
        $keywords = implode(' ', $keywords);
        $sql = "SELECT * FROM `articles` WHERE MATCH (`title`, `content`) AGAINST (:keywords IN BOOLEAN MODE)";
        $stmt = $pdo->prepare($sql);
        $stmt->bindValue(':keywords', $keywords);
        $stmt->execute();
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }

Lakukan operasi carian

  1. Akhir sekali, kita boleh memanggil fungsi mendapatkan teks penuh untuk melaksanakan operasi carian dan memaparkan hasil carian. Kod khusus adalah seperti berikut:
  2. $keywords = $_GET['keywords'];
    $results = search($keywords);
    if (empty($results)) {
        echo '未找到相关结果';
    } else {
        foreach ($results as $result) {
            echo '<h2>' . $result['title'] . '</h2>';
            echo '<p>' . $result['content'] . '</p>';
            echo '<p>' . $result['created_at'] . '</p>';
        }
    }
Kod di atas menghantar kata kunci yang dimasukkan oleh pengguna ke fungsi carian teks penuh

, melaksanakan operasi carian teks penuh dan memaparkan hasil carian kepada pengguna.

Kesimpulansearch()

Melalui contoh kod di atas, kita dapat melihat bahawa tidak rumit untuk menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS. Anda hanya perlu mencipta jadual pangkalan data dan memasukkan data ujian, kemudian mencipta fungsi carian teks penuh, dan akhirnya melaksanakan operasi carian. Sudah tentu, kod di atas hanyalah contoh mudah Dalam senario sebenar, isu seperti halaman data dan pengisihan hasil carian juga perlu dipertimbangkan. Saya harap artikel ini boleh membantu dalam menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS.

Bahan rujukan:

Dokumentasi rasmi PHP (https://www.php.net/)

    Dokumentasi rasmi MySQL (https://dev.mysql.com/doc/refman/8.0/en/fulltext-search .html)

Atas ialah kandungan terperinci Cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS. 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