ホームページ > バックエンド開発 > PHPチュートリアル > PHP と coreseek を組み合わせて効率的な映画検索エンジンを開発

PHP と coreseek を組み合わせて効率的な映画検索エンジンを開発

王林
リリース: 2023-08-05 18:12:02
オリジナル
859 人が閲覧しました

PHP と coreseek を組み合わせて、効率的な映画検索エンジンを開発します

はじめに: 映画検索エンジンは、今日のインターネット時代において重要な役割を果たし、ユーザーに高速かつ正確な検索結果を提供します。この記事では、PHP と coreseek を使用して効率的な動画検索エンジンを開発する方法を紹介します。

1.コアシークとは何ですか?
Coreseek は、Sphinx 検索エンジンに基づいてカスタマイズおよび最適化された、オープンソースの全文検索エンジン ツールです。 Sphinx 検索エンジンは、さまざまな分野で広く使用されている高速かつ効率的な全文検索エンジンです。

2. PHP と coreseek を選択する理由は何ですか?
PHP は、Web 開発の分野で広く使用されている、習得が簡単で強力なプログラミング言語です。効率的な全文検索エンジン ツールとして、coreseek を PHP と併用すると、効率的な検索エンジンを迅速に構築できます。

3. 映画検索エンジンを構築する手順

  1. coreseek のインストール
    まず、coreseek をインストールする必要があります。コマンドラインを使用して Linux 環境にインストールします。具体的な手順については、coreseek 公式ドキュメントを参照してください。インストールが完了すると、coreseek 構成ファイルは /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. ムービー データのインポート
    ムービー データをムービー テーブルにインポートするには、INSERT ステートメントを使用してデータを挿入します。 1 つずつ、またはバッチ挿入を通じて大量のデータをインポートします。以下は、ムービー データを挿入するためのサンプル 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 コードの例
    次に、coreseek を使用して映画を検索するための PHP コードを記述します。まず、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=ショーシャンクの空に

上記の手順により、PHP と coreseek をベースにした映画検索エンジンを構築することができました。検索条件の追加やソート機能の増加など、お客様のご要望に合わせて検索エンジンを拡張・最適化することができます。

結論:
この記事では、PHP と coreseek を使用して効率的な映画検索エンジンを開発する方法を紹介しました。全文検索エンジン ツールとして coreseek を使用し、PHP プログラミング言語と組み合わせることで、強力な検索エンジンを迅速に構築できます。この記事が映画検索エンジンの開発に少しでも役立つことを願っています。

以上がPHP と coreseek を組み合わせて効率的な映画検索エンジンを開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート