Rumah >pembangunan bahagian belakang >tutorial php >PHP dan coreseek digabungkan untuk membangunkan enjin carian filem yang cekap

PHP dan coreseek digabungkan untuk membangunkan enjin carian filem yang cekap

王林
王林asal
2023-08-05 18:10:56873semak imbas

PHP dan coreseek digabungkan untuk membangunkan enjin carian filem yang cekap

Pengenalan: Enjin carian filem memainkan peranan penting dalam era Internet hari ini, memberikan pengguna hasil carian yang pantas dan tepat. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP dan coreseek untuk membangunkan enjin carian filem yang cekap.

1. Apakah itu coreseek?
Coreseek ialah alat enjin carian teks penuh sumber terbuka, disesuaikan dan dioptimumkan berdasarkan enjin carian Sphinx. Enjin carian Sphinx ialah enjin carian teks penuh yang pantas dan cekap yang digunakan secara meluas dalam pelbagai bidang.

2 Kenapa pilih PHP dan coreseek?
PHP ialah bahasa pengaturcaraan yang mudah dipelajari dan berkuasa yang digunakan secara meluas dalam bidang pembangunan web. Sebagai alat enjin carian teks penuh yang cekap, coreseek boleh digunakan dengan PHP untuk membina enjin carian yang cekap dengan cepat.

3. Langkah membina enjin carian filem

  1. Pasang coreseek
    Pertama, kita perlu memasang coreseek. Gunakan baris arahan untuk memasangnya dalam persekitaran Linux Untuk langkah tertentu, sila rujuk kepada dokumentasi rasmi coreseek. Selepas pemasangan selesai, fail konfigurasi coreseek terletak dalam direktori /usr/local/coreseek/etc/. /usr/local/coreseek/etc/目录下。
  2. 创建数据库和表
    接下来,我们需要创建一个数据库,并创建一个表用于存储电影信息。可以使用MySQL或者其他数据库管理系统来创建。下面是一个创建电影表的示例SQL代码:
CREATE DATABASE IF NOT EXISTS `movie_search`;
USE `movie_search`;

CREATE TABLE IF NOT EXISTS `movies` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `director` VARCHAR(255) NOT NULL,
  `release_date` DATE NOT NULL,
  `rating` DECIMAL(3,1) NOT NULL,
  `description` TEXT NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1. 导入电影数据
    将电影数据导入到movies表中,可以使用INSERT语句一条一条地插入数据,或者通过批量插入的方式导入大量数据。下面是一个插入电影数据的示例SQL代码:
INSERT INTO `movies` (`title`, `director`, `release_date`, `rating`, `description`) 
VALUES 
('The Shawshank Redemption', 'Frank Darabont', '1994-10-14', 9.3, 'The Shawshank Redemption is a 1994 American drama film.'),
('The Godfather', 'Francis Ford Coppola', '1972-03-24', 9.2, 'The Godfather is a 1972 American crime film.'),
('Pulp Fiction', 'Quentin Tarantino', '1994-05-21', 8.9, 'Pulp Fiction is a 1994 American crime film.');
  1. 配置coreseek
    打开coreseek的配置文件sphinx.conf,进行必要的配置,以适应我们的电影搜索引擎需求。修改配置项的示例代码如下:
source movies {
    type = mysql
    sql_host = localhost
    sql_user = your_mysql_username
    sql_pass = your_mysql_password
    sql_db = movie_search
    sql_sock = /var/run/mysqld/mysqld.sock
    sql_query = SELECT id, title, director, release_date, rating, description FROM movies
}

index movies {
    source = movies
    path = /usr/local/coreseek/data/movie_search
    docinfo = extern
    mlock = 1
    mlock_retry = 5
    morphology = stem_en, soundex_en
    min_word_len = 3
}

searchd {
    listen = 9312
    listen = 9306:mysql41
    log = /var/log/coreseek/searchd.log
    query_log = /var/log/coreseek/query.log
    read_timeout = 5
    max_children = 30
    pid_file = /usr/local/coreseek/var/searchd.pid
    seamless_rotate = 1
    preopen_indexes = 0
    unlink_old = 1
    workers = threads
    binlog_path =
}
  1. PHP代码示例
    现在我们开始编写PHP代码,通过coreseek进行电影搜索。首先,创建一个名为search.php的文件,将以下代码复制并粘贴其中:
<?php

require_once('sphinxapi.php');

$sphinx = new SphinxClient();
$sphinx->SetServer('localhost', 9312);
$sphinx->SetMatchMode(SPH_MATCH_ALL);

$query = isset($_GET['q']) ? $_GET['q'] : '';

$result = $sphinx->Query($query, 'movies');

if ($result === false) {
    echo "Error: " . $sphinx->GetLastError();
} else {
    if ($sphinx->GetTotalFound() > 0) {
        echo "Search results for: " . $query . "<br>";
        foreach ($result['matches'] as $match) {
            echo "<div>";
            echo "Title: " . $match['attrs']['title'] . "<br>";
            echo "Director: " . $match['attrs']['director'] . "<br>";
            echo "Release Date: " . $match['attrs']['release_date'] . "<br>";
            echo "Rating: " . $match['attrs']['rating'] . "<br>";
            echo "Description: " . $match['attrs']['description'] . "<br>";
            echo "</div>";
        }
    } else {
        echo "No results found for: " . $query;
    }
}

?>
  1. 测试搜索引擎
    在浏览器中访问search.php,通过URL参数q传递搜索关键词即可进行搜索。例如:http://localhost/search.php?q=The Shawshank Redemption
  2. Buat pangkalan data dan jadual
Seterusnya, kita perlu mencipta pangkalan data dan mencipta jadual untuk menyimpan maklumat filem. Boleh dibuat menggunakan MySQL atau sistem pengurusan pangkalan data lain. Berikut ialah contoh kod SQL untuk membuat jadual filem:

rrreee

    Import data filem
    Untuk mengimport data filem ke dalam jadual filem, anda boleh menggunakan pernyataan INSERT untuk memasukkan data satu demi satu , atau melalui cara sisipan kelompok untuk mengimport sejumlah besar data. Berikut ialah contoh kod SQL untuk memasukkan data filem:

    🎜rrreee
      🎜Konfigurasikan coreseek🎜Buka fail konfigurasi coreseek sphinx.conf dan buat konfigurasi yang diperlukan untuk menyesuaikan filem kami keperluan enjin carian. Kod sampel untuk mengubah suai item konfigurasi adalah seperti berikut: 🎜🎜rrreee
        🎜Contoh kod PHP🎜Kini kami mula menulis kod PHP untuk mencari filem melalui coreseek. Mula-mula, buat fail bernama search.php dan salin dan tampal kod berikut ke dalamnya: 🎜🎜rrreee
          🎜Uji enjin carian🎜Lawati search.php, lulus kata kunci carian melalui parameter URL q untuk mencari. Contohnya: http://localhost/search.php?q=The Shawshank Redemption. 🎜🎜🎜Melalui langkah di atas, kami berjaya membina enjin carian filem berdasarkan PHP dan coreseek. Anda boleh mengembangkan dan mengoptimumkan enjin carian ini mengikut keperluan anda sendiri, seperti menambah lebih banyak keadaan carian, meningkatkan fungsi pengisihan, dsb. 🎜🎜Kesimpulan: 🎜Dalam artikel ini kami memperkenalkan cara menggunakan PHP dan coreseek untuk membangunkan enjin carian filem yang cekap. Dengan menggunakan coreseek sebagai alat enjin carian teks penuh, digabungkan dengan bahasa pengaturcaraan PHP, kami boleh membina enjin carian yang berkuasa dengan cepat. Saya harap artikel ini dapat memberi anda sedikit bantuan dalam membangunkan enjin carian filem. 🎜

Atas ialah kandungan terperinci PHP dan coreseek digabungkan untuk membangunkan enjin carian filem yang cekap. 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