>백엔드 개발 >PHP 튜토리얼 >PHP와 coreseek를 이용하여 정확한 레시피 검색 기능 구현

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

王林
王林원래의
2023-08-05 13:16:431493검색

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

1f7b5ea7d27366b84f3cacfe22fc1bab

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

db98d42453e49bb1a842765f91fd0202

<input type="text" name="keyword" placeholder="请输入关键词">
<input type="submit" value="搜索">

f5a47148e367a6035fd7a2faa965022e

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

cbe540fd056f607f25085ceee5d16d68

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

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

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

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.