CakePHP는 강력한 기능과 유연한 디자인을 제공하는 탁월한 웹 애플리케이션 개발 프레임워크입니다. Sphinx는 대량의 데이터를 효율적으로 처리하는 데 도움이 되는 인기 있는 전체 텍스트 검색 엔진입니다.
이 기사에서는 검색 요구 사항을 더 잘 처리하기 위해 CakePHP에서 Sphinx를 사용하는 방법을 소개합니다.
먼저 Sphinx를 설치해야 합니다. Sphinx는 소스코드 설치, 바이너리 패키지 설치 등 다양한 설치 방법을 제공합니다. 여기에서는 Ubuntu Linux에서 APT를 사용하여 Sphinx를 설치하는 방법을 소개합니다.
터미널을 열고 다음 명령을 입력하세요:
sudo apt-get update
sudo apt-get install sphinxsearch
설치가 완료된 후 다음 명령을 사용하여 Sphinx가 올바르게 설치되었는지 확인할 수 있습니다.
sudo /usr/bin/searchd
모든 것이 정상이면 다음과 유사한 출력을 볼 수 있습니다:
Sphinx 3.1.1-id64-release (4b8c4635 커밋)
Copyright (c) 2001-2020, Andrew Aksyonoff
Copyright (c) 2008-2020, Sphinx Technologies Inc (http://sphinxsearch.com)
다음으로 필요에 맞게 Sphinx를 구성해야 합니다. Sphinx 구성 파일은 /etc/sphinxsearch/sphinx.conf에 있습니다. 다음 명령을 사용하여 파일을 편집할 수 있습니다.
sudo nano /etc/sphinxsearch/sphinx.conf
다음은 간단한 구성 예입니다.
source src1
{
type = mysql sql_host = localhost sql_user = username sql_pass = password sql_db = database sql_query = SELECT id, title, content FROM articles
}
index idx1
{
source = src1 path = /var/lib/sphinxsearch/data/idx1 docinfo = extern morphology = stem_en charset_type = utf-8 min_word_len = 3
}
searchd
{
listen = 127.0.0.1:9312 log = /var/log/sphinxsearch/searchd.log query_log = /var/log/sphinxsearch/query.log read_timeout = 5 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid max_matches = 1000 seamless_rotate = 1
}
여기서 src1이라는 데이터 소스를 정의하고, 데이터 검색을 위해 MySQL 데이터베이스를 사용하며, 검색할 데이터 테이블은 기사이고, 검색할 데이터 필드는 id, title 및 content입니다. .
다음으로 idx1이라는 인덱스가 정의되고, src1이 데이터 소스로 사용되며, 인덱스 파일은 /var/lib/sphinxsearch/data/idx1 디렉터리에 저장됩니다.
마지막으로, 수신 IP 및 포트, 로그 파일 경로, 쿼리 시간 초과 등과 같은 searchd 서버의 일부 매개변수가 정의됩니다.
다음으로 CakePHP에서 모델을 생성합니다. 다음 명령을 사용하여 Article이라는 모델 클래스를 생성할 수 있습니다:
./bin/cake baking model Article
실행 후, CakePHP는 src/Model 아래에 Article이라는 모델 클래스를 자동으로 생성합니다.
마지막으로 검색 요청을 처리하기 위한 CakePHP 컨트롤러 코드를 작성해야 합니다. 다음은 간단한 예입니다.
namespace AppController;
use CakeUtilitySecurity;
use CakeORMTableRegistry; HTTP 쿼리 매개변수에서 "q"라는 검색 키워드입니다.
그런 다음 SphinxClient 객체를 생성하고 Sphinx 서버 주소와 포트를 설정한 다음 검색어에 SPH_MATCH_ALL 모드를 사용하세요.
다음으로 Sphinx가 반환한 결과에서 ID를 추출하고 Articles 모델에서 이러한 기사 데이터를 찾아보세요.
위 내용은 CakePHP와 함께 스핑크스를 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!