ホームページ > バックエンド開発 > PHPチュートリアル > PHPとcoreseekを利用して正確なレシピ検索機能を実装

PHPとcoreseekを利用して正確なレシピ検索機能を実装

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

PHP と coreseek を使用して正確なレシピ検索機能を実現

概要:
今日のペースの速い生活の中で、ますます多くの人が食事の健康に注意を払い始めています。適切なレシピを見つけることが必要になります。この記事では、PHP と coreseek 検索エンジンを使用して、ユーザーがニーズに合ったレシピを簡単に見つけられる正確なレシピ検索機能を実装する方法を紹介します。

準備作業:
始める前に、いくつかのツールを準備する必要があります:

  1. PHP 環境: PH​​P スクリプトが確実に実行されるように、ローカルまたはサーバー上に PHP 環境をセットアップします。実行することができます。
  2. MySQL データベース: レシピ データの保存に使用されます。
  3. Coreseek 検索エンジン: Sphinx に基づく全文検索エンジン。最新バージョンは公式Webサイトからダウンロードできます。

中心的なアイデア:

  1. レシピ データを準備し、MySQL データベースにインポートします。
  2. Coreseek 検索エンジンを設定して開始します。
  3. PHP を使用して検索関数コードを記述し、ユーザー入力と検索結果の表示を実現します。

ステップ 1: レシピ データを準備し、MySQL データベースにインポートします

まず、レシピ データを保存するデータベースを作成する必要があります。 phpMyAdmin などのツールを使用するか、コマンド ラインで対応する SQL ステートメントを直接実行して作成できます。

データベースとテーブルを作成する SQL ステートメントは次のとおりです:

CREATE DATABASE IF NOT EXISTS レシピ;
USE レシピ;
CREATE TABLE IF NOT EXISTS レシピ (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
ingredients TEXT NOT NULL,
directions TEXT NOT NULL
ログイン後にコピー

);

次に、PHP スクリプトを作成してローカル レシピ データを読み取り、データベースにインポートします。レシピ データが次の形式で「recipes.txt」というテキスト ファイルに保存されているとします。

タイトル 1
材料 1、材料 2、材料 3
ステップ 1 、ステップ 2、ステップ3

タイトル 2
材料 4、材料 5、材料 6
ステップ 4、ステップ 5、ステップ 6

PHP スクリプト コードは次のとおりです。

//ファイルを開く
$handle = fopen('recipes.txt', 'r');
if ($handle) {

$title = '';
$ingredients = '';
$directions = '';

while (($line = fgets($handle)) !== false) {
    $line = trim($line);

    if ($line != '') {
        if ($title == '') {
            $title = $line;
        } elseif ($ingredients == '') {
            $ingredients = $line;
        } elseif ($directions == '') {
            $directions = $line;
        }

        if ($title != '' && $ingredients != '' && $directions != '') {
            // 将食谱数据插入数据库
            $sql = "INSERT INTO recipes (title, ingredients, directions) VALUES ('" . $title . "', '" . $ingredients . "', '" . $directions . "')";
            // 执行SQL语句
            // ...

            // 重置数据
            $title = '';
            $ingredients = '';
            $directions = '';
        }
    }
}

fclose($handle);
ログイン後にコピー

}
?>

上記のコードでは、「recipes.txt」という名前のファイルを開き、内容を 1 行ずつ読み取ります。空白行を使用して、さまざまなレシピのタイトル、材料、手順を区別します。完全なレシピをそれぞれ読み取った後、それをデータベースに挿入します。

ステップ 2: Coreseek 検索エンジンの設定と開始

まず、ダウンロードした coreseek 圧縮パッケージを指定したディレクトリに解凍します。 Coreseek ディレクトリに入り、設定ファイル「sphinx.conf」を編集し、次の内容を設定します:

ソースレシピ
{

type = mysql
sql_host = localhost
sql_user = root
sql_pass = your_password
sql_db = recipe
sql_port = 3306
sql_query = SELECT id, title, ingredients, directions FROM recipes
ログイン後にコピー

}

インデックスレシピ
{

source = recipe
path = /path/to/index/recipe
docinfo = extern
min_word_len = 1
charset_type = utf-8
ログイン後にコピー

}

searchd
{

listen = 9312
log = /path/to/searchd.log
query_log = /path/to/query.log
max_matches = 1000
ログイン後にコピー

}

上記の構成では、「recipe」という名前のデータ ソースを定義しました。 、レシピデータの取得には MySQL データベースが使用されました。次に、「recipe」という名前のインデックスが作成され、関連するパスと構成が設定されました。

設定ファイルを保存して終了した後、次のコマンドを使用して Coreseek 検索エンジンを開始します:

/path/to/coreseek/bin/searchd --config /path/to/coreseek /etc/ sphinx.conf

ステップ 3: PHP を使用して検索関数のコードを作成する

ここで、PHP を使用して検索関数のコードを作成できます。 Web ページに、ユーザーが検索するキーワードを入力できる検索フォームがあるとします。

HTML コードは次のとおりです:

<input type="text" name="keyword" placeholder="请输入关键词">
<input type="submit" value="搜索">
ログイン後にコピー

PHP スクリプト コードは次のとおりです (search.php):

// ユーザーが入力したキーワードを取得します
$keyword = $_GET['keyword '];

//データベースのクエリ
$sql = "SELECT * FROM Recipe WHERE MATCH('".$keyword."')";
//SQL ステートメントの実行
/ / .. .

// クエリ結果を解析する
// ...

// 検索結果を表示する
// ...

?> ;

上記のコードでは、まずユーザーが入力したキーワードを取得し、それを変数 $keyword に保存します。次に、MATCH キーワードを使用してデータベースにクエリを実行し、キーワードに一致するレシピ データを取得します。特定のデータベース クエリと結果解析コードはここでは省略されていますが、独自のニーズに応じて実装できます。

最後に、検索結果ページでは、ループ ステートメントを使用してクエリされたデータを走査し、それをリストまたはカードの形式でユーザーに表示するなど、特定のニーズに応じて検索結果を表示できます。

概要:
この記事では、PHP と coreseek 検索エンジンを使用して正確なレシピ検索機能を実現する方法を紹介します。レシピ データを準備し、Coreseek 検索エンジンを設定して起動し、関連する PHP コードを記述することで、強力なレシピ検索機能を簡単に実装でき、ユーザーがニーズに合ったレシピをすばやく見つけることができます。同時に、独自のニーズに応じてコードを拡張および最適化して、より良いユーザー エクスペリエンスを実現することもできます。

以上がPHPとcoreseekを利用して正確なレシピ検索機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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