PHP と coreseek を使用して正確なレシピ検索機能を実現
概要:
今日のペースの速い生活の中で、ますます多くの人が食事の健康に注意を払い始めています。適切なレシピを見つけることが必要になります。この記事では、PHP と coreseek 検索エンジンを使用して、ユーザーがニーズに合ったレシピを簡単に見つけられる正確なレシピ検索機能を実装する方法を紹介します。
準備作業:
始める前に、いくつかのツールを準備する必要があります:
中心的なアイデア:
ステップ 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 コードは次のとおりです:
PHP スクリプト コードは次のとおりです (search.php):
// ユーザーが入力したキーワードを取得します
$keyword = $_GET['keyword '];
//データベースのクエリ
$sql = "SELECT * FROM Recipe WHERE MATCH('".$keyword."')";
//SQL ステートメントの実行
/ / .. .
// クエリ結果を解析する
// ...
// 検索結果を表示する
// ...
?> ;
上記のコードでは、まずユーザーが入力したキーワードを取得し、それを変数 $keyword に保存します。次に、MATCH キーワードを使用してデータベースにクエリを実行し、キーワードに一致するレシピ データを取得します。特定のデータベース クエリと結果解析コードはここでは省略されていますが、独自のニーズに応じて実装できます。
最後に、検索結果ページでは、ループ ステートメントを使用してクエリされたデータを走査し、それをリストまたはカードの形式でユーザーに表示するなど、特定のニーズに応じて検索結果を表示できます。
概要:
この記事では、PHP と coreseek 検索エンジンを使用して正確なレシピ検索機能を実現する方法を紹介します。レシピ データを準備し、Coreseek 検索エンジンを設定して起動し、関連する PHP コードを記述することで、強力なレシピ検索機能を簡単に実装でき、ユーザーがニーズに合ったレシピをすばやく見つけることができます。同時に、独自のニーズに応じてコードを拡張および最適化して、より良いユーザー エクスペリエンスを実現することもできます。
以上がPHPとcoreseekを利用して正確なレシピ検索機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。