PHP와 coreseek을 사용하여 정확한 레시피 검색 기능 구현
개요:
빠르게 변화하는 현대 생활 속에서 점점 더 많은 사람들이 식생활 건강에 관심을 갖기 시작했습니다. 올바른 레시피를 찾는 것이 필요해집니다. 이 기사에서는 사용자가 자신의 요구에 맞는 레시피를 쉽게 찾을 수 있도록 PHP와 coreseek 검색 엔진을 사용하여 정확한 레시피 검색 기능을 구현하는 방법을 소개합니다.
준비:
시작하기 전에 몇 가지 도구를 준비해야 합니다.
핵심 아이디어:
1단계: 레시피 데이터 준비 및 MySQL 데이터베이스로 가져오기
먼저, 레시피 데이터를 저장할 데이터베이스를 만들어야 합니다. phpMyAdmin과 같은 도구를 사용하거나 명령줄에서 해당 SQL 문을 직접 실행하여 생성할 수 있습니다.
데이터베이스와 테이블을 생성하는 SQL 문은 다음과 같습니다:
CREATE DATABASE IF NOT EXISTS recipe;
USE recipe;
CREATE TABLE IF NOT EXISTS recipe (
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"라는 파일을 열고 내용을 한줄씩 읽어보겠습니다. 빈 줄을 사용하여 다양한 레시피의 제목, 재료, 단계를 구분하세요. 각각의 완전한 레시피를 읽은 후 이를 데이터베이스에 삽입합니다.
2단계: Coreseek 검색 엔진 구성 및 시작
먼저 다운로드한 coreseek 압축 패키지를 지정된 디렉터리에 압축을 풉니다. Coreseek 디렉터리에 들어가서 "sphinx.conf" 구성 파일을 편집하고 다음 콘텐츠를 구성합니다.
source recipe
{
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
}
index recipe
{
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
}
at 위 구성에서는 "recipe"라는 데이터 소스를 정의하고 MySQL 데이터베이스를 사용하여 레시피 데이터를 얻었습니다. 그런 다음 "recipe"라는 인덱스가 생성되고 관련 경로 및 구성이 설정되었습니다.
구성 파일을 저장하고 종료한 후 다음 명령을 사용하여 Coreseek 검색 엔진을 시작합니다:
/path/to/coreseek/bin/searchd --config /path/to/coreseek/etc/sphinx.conf
3단계: PHP를 사용하여 검색 기능 코딩
이제 PHP를 사용하여 검색 기능을 코딩할 수 있습니다. 사용자가 검색할 키워드를 입력할 수 있는 웹 페이지에 검색 양식이 있다고 가정해 보겠습니다.
HTML 코드는 다음과 같습니다.
PHP 스크립트 코드는 다음과 같습니다(search.php):
// 사용자가 입력한 키워드 가져오기
$keyword = $_GET['keyword'];
// 데이터베이스 쿼리
$sql = "SELECT * FROM recipe WHERE MATCH('".$ 키워드. "')";
// SQL 문 실행
// ...
// 쿼리 결과 구문 분석
// ...
// 검색 결과 표시
// ...
?>
위 코드에서는 먼저 사용자가 입력한 키워드를 얻어 $keyword 변수에 저장합니다. 그런 다음 MATCH 키워드를 사용하여 데이터베이스에 쿼리하고 키워드와 일치하는 레시피 데이터를 얻습니다. 여기서는 특정 데이터베이스 쿼리 및 결과 구문 분석 코드가 생략되었으므로 필요에 따라 구현할 수 있습니다.
마지막으로 검색 결과 페이지에서는 루프 문을 사용하여 쿼리된 데이터를 탐색하고 이를 목록이나 카드 형식으로 사용자에게 표시하는 등 특정 요구에 따라 검색 결과를 표시할 수 있습니다.
요약:
이 글에서는 정확한 레시피 검색 기능을 구현하기 위해 PHP와 coreseek 검색 엔진을 사용하는 방법을 소개합니다. 레시피 데이터 준비, Coreseek 검색 엔진 구성 및 시작, 관련 PHP 코드 작성을 통해 강력한 레시피 검색 기능을 쉽게 구현하여 사용자가 자신의 요구에 맞는 레시피를 빠르게 찾을 수 있도록 도와줍니다. 동시에 더 나은 사용자 경험을 달성하기 위해 필요에 따라 코드를 확장하고 최적화할 수도 있습니다.
위 내용은 PHP와 coreseek를 이용하여 정확한 레시피 검색 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!