소개 : Sphinx는 빠르고 정확하며 확장 가능한 검색 솔루션을 제공하는 오픈 소스 전체 텍스트 검색 엔진입니다. Sphinx를 PHP 웹 사이트에 통합하면 고 가용성과 탁월한 성능 검색 기능이 가능합니다. 이 기사는 PHP 환경에서 Sphinx를 사용하는 방법을 자세히 설명하고 자세한 구현 단계 및 코드 예제를 제공합니다.
Sphinx는 C ++에서 개발 한 전체 텍스트 검색 엔진으로, 대량의 텍스트 데이터를 빠르고 정확하게 검색하는 데 중점을 둡니다. 분산 아키텍처를 지원하여 여러 노드를 통해 수평 스케일링 및 고 가용성을 가능하게합니다. 스핑크스의 주요 기능은 다음과 같습니다.
Sphinx 검색 엔진을 웹 사이트에 쉽게 통합하고 효율적인 검색 기능을 달성 할 수있는 Sphinx Client Interface를 PHP 개발자에게 제공합니다. 다음으로 PHP 환경에서 Sphinx를 사용하는 방법을 소개하고 샘플 코드를 통해 특정 구현 단계를 설명합니다.
먼저 Linux 서버에 Sphinx를 설치해야합니다. 다음 명령을 사용하여 설치할 수 있습니다.
sudo apt-get update
sudo apt-get install sphinxsearch
Sphinx는 검색 기능을 사용하기 전에 검색 해야하는 데이터를 색인해야합니다. 사용자 정보가 포함 된 데이터베이스 테이블이 있다고 가정하고 필드에는 ID, 이름 및 연령이 포함됩니다. PHP 스크립트를 통해이 테이블의 데이터를 스핑크스 인덱스로 가져올 수 있습니다.
<?php
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'username';
$password = 'password';
<p>try {<br>
$db = new PDO($dsn, $username, $password);<br>
$query = $db->query('SELECT * FROM users');<br>
$users = $query->fetchAll(PDO::FETCH_ASSOC);</p>
$index->setFields(['id', 'name', 'age']);
foreach ($users as $user) {
$document = new SphinxDocument();
$document->setAttributes($user);
$index->addDocument($document);
}
$index->build();
} catch (pdoexception $ e) {
Echo '연결 실패 :'. $ e-> getMessage ();
}
?>
데이터 색인이 완료되면 다음 단계는 프론트 엔드 페이지에서 PHP를 통해 검색 기능을 구현하는 것입니다. 간단한 검색 페이지 예는 다음과 같습니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sphinx Search</title>
</head>
<body>
<form action="search.php" method="GET">
<input type="text" name="keyword" placeholder="키워드를 입력하십시오">
<input type="submit" value="찾다">
</form>
<?php
if (isset($_GET['keyword'])) {
$keyword = $_GET['keyword'];
$sphinx = new SphinxClient();
$sphinx->setServer('localhost', 9312);
if ($result['total'] > 0) {
foreach ($result['matches'] as $match) {
echo $match['attrs']['name'] . '<br>';
}
} else {
echo '관련 결과가 없습니다';
}
}
?>