PHP와 coreseek를 이용하여 정확한 레시피 검색 기능 구현

王林
풀어 주다: 2023-08-05 13:18:02
원래의
1449명이 탐색했습니다.

PHP와 coreseek을 사용하여 정확한 레시피 검색 기능 구현

개요:
빠르게 변화하는 현대 생활 속에서 점점 더 많은 사람들이 식생활 건강에 관심을 갖기 시작했습니다. 올바른 레시피를 찾는 것이 필요해집니다. 이 기사에서는 사용자가 자신의 요구에 맞는 레시피를 쉽게 찾을 수 있도록 PHP와 coreseek 검색 엔진을 사용하여 정확한 레시피 검색 기능을 구현하는 방법을 소개합니다.

준비:
시작하기 전에 몇 가지 도구를 준비해야 합니다.

  1. PHP 환경: PHP 스크립트가 실행될 수 있도록 로컬 또는 서버에 PHP 환경을 설정합니다.
  2. MySQL 데이터베이스: 레시피 데이터를 저장하는 데 사용됩니다.
  3. Coreseek 검색 엔진: Sphinx를 기반으로 한 전체 텍스트 검색 엔진입니다. 최신 버전은 공식 홈페이지에서 다운로드할 수 있다.

핵심 아이디어:

  1. 레시피 데이터를 준비하고 MySQL 데이터베이스로 가져옵니다.
  2. Coreseek 검색 엔진을 구성하고 시작하세요.
  3. PHP를 사용하여 사용자 입력 및 검색 결과 표시를 실현하는 검색 기능 코드를 작성하세요.

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 코드는 다음과 같습니다.

<input type="text" name="keyword" placeholder="请输入关键词">
<input type="submit" value="搜索">
로그인 후 복사

PHP 스크립트 코드는 다음과 같습니다(search.php):

// 사용자가 입력한 키워드 가져오기
$keyword = $_GET['keyword'];

// 데이터베이스 쿼리
$sql = "SELECT * FROM recipe WHERE MATCH('".$ 키워드. "')";
// SQL 문 실행
// ...

// 쿼리 결과 구문 분석
// ...

// 검색 결과 표시
// ...

?>

위 코드에서는 먼저 사용자가 입력한 키워드를 얻어 $keyword 변수에 저장합니다. 그런 다음 MATCH 키워드를 사용하여 데이터베이스에 쿼리하고 키워드와 일치하는 레시피 데이터를 얻습니다. 여기서는 특정 데이터베이스 쿼리 및 결과 구문 분석 코드가 생략되었으므로 필요에 따라 구현할 수 있습니다.

마지막으로 검색 결과 페이지에서는 루프 문을 사용하여 쿼리된 데이터를 탐색하고 이를 목록이나 카드 형식으로 사용자에게 표시하는 등 특정 요구에 따라 검색 결과를 표시할 수 있습니다.

요약:
이 글에서는 정확한 레시피 검색 기능을 구현하기 위해 PHP와 coreseek 검색 엔진을 사용하는 방법을 소개합니다. 레시피 데이터 준비, Coreseek 검색 엔진 구성 및 시작, 관련 PHP 코드 작성을 통해 강력한 레시피 검색 기능을 쉽게 구현하여 사용자가 자신의 요구에 맞는 레시피를 빠르게 찾을 수 있도록 도와줍니다. 동시에 더 나은 사용자 경험을 달성하기 위해 필요에 따라 코드를 확장하고 최적화할 수도 있습니다.

위 내용은 PHP와 coreseek를 이용하여 정확한 레시피 검색 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!