>백엔드 개발 >PHP 튜토리얼 >PHP와 coreseek를 결합하여 효율적인 영화 검색 엔진 개발

PHP와 coreseek를 결합하여 효율적인 영화 검색 엔진 개발

王林
王林원래의
2023-08-05 18:10:56872검색

PHP와 coreseek를 결합하여 효율적인 영화 검색 엔진을 개발합니다

소개: 영화 검색 엔진은 오늘날 인터넷 시대에 사용자에게 빠르고 정확한 검색 결과를 제공하는 중요한 역할을 합니다. 이 기사에서는 PHP와 coreseek를 사용하여 효율적인 영화 검색 엔진을 개발하는 방법을 소개합니다.

1. 코어시크란?
Coreseek는 Sphinx 검색 엔진을 기반으로 사용자 정의되고 최적화된 오픈 소스 전체 텍스트 검색 엔진 도구입니다. 스핑크스 검색 엔진은 빠르고 효율적인 전체 텍스트 검색 엔진으로 다양한 분야에서 널리 사용됩니다.

2. PHP와 coreseek를 선택하는 이유는 무엇입니까?
PHP는 배우기 쉽고 강력한 프로그래밍 언어로 웹 개발 분야에서 널리 사용됩니다. 효율적인 전체 텍스트 검색 엔진 도구인 coreseek를 PHP와 함께 사용하면 효율적인 검색 엔진을 빠르게 구축할 수 있습니다.

3. 영화 검색 엔진 구축 단계

  1. coreseek 설치
    먼저 coreseek를 설치해야 합니다. Linux 환경에 설치하려면 명령줄을 사용하세요. 구체적인 단계는 coreseek 공식 문서를 참조하세요. 설치가 완료되면 coreseek 구성 파일은 /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. 데이터베이스 및 테이블 생성
다음으로, 데이터베이스를 생성하고 영화 정보를 저장할 테이블을 생성해야 합니다. MySQL 또는 기타 데이터베이스 관리 시스템을 사용하여 생성할 수 있습니다. 다음은 영화 테이블을 생성하는 샘플 SQL 코드입니다.

rrreee

    영화 데이터 가져오기
    영화 데이터를 영화 테이블로 가져오려면 INSERT 문을 사용하여 데이터를 하나씩 삽입할 수 있습니다. , 또는 일괄 삽입 방식을 통해 대량의 데이터를 가져올 수 있습니다. 다음은 영화 데이터를 삽입하는 샘플 SQL 코드입니다:

    🎜rrreee
      🎜Configure coreseek🎜coreseek의 구성 파일 sphinx.conf를 열고 영화에 맞게 필요한 구성을 만듭니다. 검색 엔진이 필요합니다. 구성 항목을 수정하기 위한 샘플 코드는 다음과 같습니다. 🎜🎜rrreee
        🎜PHP 코드 예제🎜이제 coreseek를 통해 영화를 검색하는 PHP 코드 작성을 시작합니다. 먼저 search.php라는 파일을 만들고 다음 코드를 복사하여 파일에 붙여넣으세요. 🎜🎜rrreee
          🎜검색 엔진 테스트🎜를 방문하세요. search.php, URL 매개변수 q를 통해 검색 키워드를 전달하여 검색합니다. 예: http://localhost/search.php?q=쇼생크 탈출. 🎜🎜🎜위 단계를 통해 우리는 PHP와 coreseek 기반의 영화 검색 엔진을 성공적으로 구축했습니다. 더 많은 검색 조건 추가, 정렬 기능 증가 등 필요에 따라 이 검색 엔진을 확장하고 최적화할 수 있습니다. 🎜🎜결론: 🎜이 기사에서는 PHP와 coreseek를 사용하여 효율적인 영화 검색 엔진을 개발하는 방법을 소개했습니다. Coreseek를 전체 텍스트 검색 엔진 도구로 사용하고 PHP 프로그래밍 언어와 결합하여 강력한 검색 엔진을 빠르게 구축할 수 있습니다. 이 기사가 영화 검색 엔진을 개발하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 PHP와 coreseek를 결합하여 효율적인 영화 검색 엔진 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.