>백엔드 개발 >PHP 튜토리얼 >PHP 개발에서 전체 텍스트 검색을 위해 Sphinx를 사용하는 방법

PHP 개발에서 전체 텍스트 검색을 위해 Sphinx를 사용하는 방법

WBOY
WBOY원래의
2023-06-25 09:09:271537검색

PHP 개발에서 전체 텍스트 검색을 위해 Sphinx를 사용하는 방법

Sphinx는 다양한 언어의 전체 텍스트 검색 요구에 적합한 고성능 전체 텍스트 검색 엔진입니다. PHP 개발을 위해 Sphinx는 기존 PHP 애플리케이션에 쉽게 통합할 수 있는 API와 플러그인을 제공합니다. 이 기사에서는 전체 텍스트 검색에 Sphinx를 사용하는 방법을 설명합니다.

  1. Sphinx 설치

Sphinx 설치는 매우 간단합니다. Linux 시스템에서 몇 가지 명령만 실행하면 됩니다. Ubuntu 시스템에 Sphinx를 설치하는 단계는 다음과 같습니다.

(1) APT 패키지 목록 업데이트

sudo apt-get update

(2) Sphinx 설치

sudo apt-get install sphinxsearch

(3) Sphinx 시작 Service

sudo 서비스 sphinxsearch 시작

  1. Sphinx 구성

Sphinx 구성 파일은 /etc/sphinxsearch/sphinx.conf입니다. 이 파일에서는 Sphinx의 전역 설정과 인덱스를 정의할 수 있습니다. 다음은 MySQL에서 Sphinx로 데이터를 인덱싱하기 위한 샘플 구성 파일입니다:

source src1
{
type = mysql

sql_host = localhost
sql_user = 사용자 이름
sql_pass = 비밀번호
sql_db = dbname
sql_port = 3306 # 선택 사항, 기본값 is 3306

sql_query =

SELECT id, title, content 
FROM article

sql_attr_uint = Category_id
}

index my_index
{
소스 = src1
경로 = /var/lib/sphinxsearch/data/my_index
docinfo = extern
charset_type = ut f-8

형태학 = Stem_en

min_prefix_len = 3
min_infix_len = 1
}

searchd
{
listening = 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
}

이 구성 파일에서는 src1이라는 데이터 소스를 정의하고 MySQL 데이터베이스에 연결합니다. 검색할 필드를 정의합니다. 그런 다음 src1 소스를 지정된 경로로 인덱싱하기 위해 my_index라는 인덱스를 정의했습니다. 마지막으로 포트 9312에서 수신 대기하고 쿼리 로그를 켜는 searchd 서비스를 정의합니다.

  1. PHP를 사용하여 Sphinx에 연결

PHP에서 Sphinx에 연결하는 것은 매우 쉽습니다. 검색을 수행하는 기능 세트를 제공하는 Sphinx의 PHP 확장을 사용할 수 있습니다. 다음은 전체 텍스트 검색을 위해 Sphinx에 연결하는 PHP 코드의 예입니다.

//Connect to Sphinx
$cl = new SphinxClient();
$cl->setServer("localhost", 9312);

//검색 결과
$keywords = "Sphinx";
$result = $cl->Query($keywords, "my_index");

//결과 출력
foreach ($result['matches']를 $doc로 출력 => $ 일치) {
echo "문서 ID={$doc}, 가중치={$match['weight']}, attr={$match'attrs'}
";
}

이 예에서는 먼저 SphinxClient 객체를 생성하고 Sphinx 서버의 호스트와 포트를 지정합니다. 그런 다음 검색할 쿼리 키워드와 검색할 인덱스 이름을 지정하여 검색을 수행합니다. 마지막으로 결과를 반복하여 일치하는 문서 ID, 가중치 및 속성을 출력합니다.

요약

Sphinx는 PHP 애플리케이션에 쉽게 통합할 수 있는 강력한 전체 텍스트 검색 엔진입니다. Sphinx를 사용하면 대량의 텍스트 문서를 빠르게 검색할 수 있으며 매우 효율적이고 정확한 검색 결과를 얻을 수 있습니다. 이 기사가 도움이 되기를 바라며 PHP 개발에서 전체 텍스트 검색을 위해 Sphinx를 사용하는 방법을 더 잘 이해하는 데 도움이 되기를 바랍니다.

위 내용은 PHP 개발에서 전체 텍스트 검색을 위해 Sphinx를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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