Maison  >  Article  >  développement back-end  >  PHP et coreseek s'associent pour développer un moteur de recherche de films efficace

PHP et coreseek s'associent pour développer un moteur de recherche de films efficace

王林
王林original
2023-08-05 18:10:56849parcourir

PHP et coreseek sont combinés pour développer un moteur de recherche de films efficace

Introduction : Les moteurs de recherche de films jouent un rôle important à l'ère Internet d'aujourd'hui, fournissant aux utilisateurs des résultats de recherche rapides et précis. Dans cet article, nous présenterons comment utiliser PHP et coreseek pour développer un moteur de recherche de films efficace.

1. Qu'est-ce que coreseek ?
Coreseek est un outil de moteur de recherche en texte intégral open source, personnalisé et optimisé basé sur le moteur de recherche Sphinx. Le moteur de recherche Sphinx est un moteur de recherche en texte intégral rapide et efficace, largement utilisé dans divers domaines.

2. Pourquoi choisir PHP et coreseek ?
PHP est un langage de programmation puissant et facile à apprendre, largement utilisé dans le domaine du développement Web. En tant qu'outil de moteur de recherche en texte intégral efficace, coreseek peut être utilisé avec PHP pour créer rapidement un moteur de recherche efficace.

3. Étapes pour créer un moteur de recherche de films

  1. Installer coreseek
    Tout d'abord, nous devons installer coreseek. Utilisez la ligne de commande pour l'installer dans un environnement Linux. Pour les étapes spécifiques, veuillez vous référer à la documentation officielle de coreseek. Une fois l'installation terminée, le fichier de configuration coreseek se trouve dans le répertoire /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. Créer une base de données et des tables
Ensuite, nous devons créer une base de données et créer une table pour stocker les informations sur le film. Peut être créé à l'aide de MySQL ou d'autres systèmes de gestion de bases de données. Voici un exemple de code SQL pour créer une table de films :

rrreee

    Importer des données de film
    Pour importer des données de film dans la table de films, vous pouvez utiliser l'instruction INSERT pour insérer les données une par une. , ou via une méthode d'insertion par lots pour importer de grandes quantités de données. Voici un exemple de code SQL pour insérer des données de film :

    🎜rrreee
      🎜Configurer coreseek🎜Ouvrez le fichier de configuration de coreseek sphinx.conf et effectuez les configurations nécessaires pour nous adapter au film besoins des moteurs de recherche. L'exemple de code pour modifier les éléments de configuration est le suivant : 🎜🎜rrreee
        🎜Exemple de code PHP🎜Maintenant, nous commençons à écrire du code PHP pour rechercher des films via coreseek. Tout d'abord, créez un fichier appelé search.php et copiez-collez-y le code suivant : 🎜🎜rrreee
          🎜Testez le moteur de recherche🎜Visitez search.php, transmettez le mot-clé de recherche via le paramètre URL q pour rechercher. Par exemple : http://localhost/search.php?q=The Shawshank Redemption. 🎜🎜🎜Grâce aux étapes ci-dessus, nous avons réussi à créer un moteur de recherche de films basé sur PHP et coreseek. Vous pouvez étendre et optimiser ce moteur de recherche en fonction de vos propres besoins, comme ajouter plus de conditions de recherche, augmenter les fonctions de tri, etc. 🎜🎜Conclusion : 🎜Dans cet article, nous avons présenté comment utiliser PHP et coreseek pour développer un moteur de recherche de films efficace. En utilisant coreseek comme moteur de recherche en texte intégral, combiné au langage de programmation PHP, nous pouvons rapidement créer un moteur de recherche puissant. J'espère que cet article pourra vous aider à développer un moteur de recherche de films. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn