PHP 및 Manticore 검색 개발 가이드: 제안이 포함된 검색 결과 집계
소개:
검색 기술의 지속적인 발전으로 최신 검색 엔진은 많은 웹 애플리케이션의 핵심 구성 요소가 되었습니다. PHP 개발에서는 오픈 소스 전체 텍스트 검색 엔진인 Manticore Search를 사용하여 빠르고 효율적인 검색 기능을 구현할 수 있습니다. 이 문서에서는 PHP 및 Manticore Search를 사용하여 개발하는 방법과 제안 기능을 활용하여 검색 결과를 집계하는 방법을 설명합니다.
I. Manticore 검색 소개
Manticore 검색은 Sphinx 전체 텍스트 검색 엔진의 업그레이드 버전으로, 더 높은 성능과 더 많은 기능을 제공합니다. 분산 인덱싱, 실시간 인덱싱, 다중 쿼리 구문, 고도로 사용자 정의 가능한 매개변수 구성과 같은 기능을 지원하므로 개발자는 다양한 검색 요구 사항을 유연하게 충족할 수 있습니다.
II. Manticore Search 설치 및 구성
먼저 서버에 Manticore Search를 설치해야 합니다. PHP 패키지 관리자 Composer를 사용하여 설치하는 것이 좋습니다. 프로젝트 디렉터리의 작곡가.json 파일에 다음 종속성을 추가합니다.
{ "require": { "bobthecow/manticoresearch": "^2.0" } }
그런 다음 명령줄에서 composer install
를 실행하여 Manticore Search를 설치합니다.
설치가 완료되면 구성을 해야 합니다. 프로젝트 루트 디렉터리에 구성 파일을 생성하고 이름을 manticore.conf로 지정합니다. 구성은 다음과 같습니다.
index main { type = plain path = /path/to/index source = src } searchd { listen = localhost:9306:mysql41 binlog_path = /path/to/binlog log = /path/to/log/searchd.log }
위 구성 파일에서는 main이라는 인덱스와 searchd라는 검색 데몬을 정의합니다. 실제 개발에서는 필요에 따라 보다 세부적인 구성이 가능합니다.
III. 인덱스 생성 및 데이터 가져오기
먼저 데이터를 저장할 인덱스를 생성해야 합니다. PHP에서는 Manticore Search가 제공하는 API를 사용하여 이를 달성할 수 있습니다.
<?php require 'vendor/autoload.php'; use ManticoresearchClient; use ManticoresearchQueryBoolQuery; use ManticoresearchQuery; use ManticoresearchQueryBuilders; $client = new Client(); $client->connect(['host' => 'localhost', 'port' => 9306]); // 创建索引 $client->indexCreate('main'); $index = $client->getIndex('main'); // 创建字段 $index->fieldCreate([ 'name' => 'title', 'type' => 'text', 'indexed' => true, ]); // 导入数据 $data = [ ['id' => 1, 'title' => 'PHP 开发'], ['id' => 2, 'title' => 'Manticore Search'], ['id' => 3, 'title' => '全文搜索引擎'], ]; foreach ($data as $item) { $index->addDocument($item['id'], ['title' => $item['title']]); } // 等待索引刷新 $index->flush(); ?>
IV. 제안 기능 구현
만티코어 검색은 사용자가 입력한 키워드를 기반으로 검색 제안을 제공하는 제안 기능을 제공합니다. 다음은 제안 기능을 사용하여 검색 결과를 집계하는 방법을 보여주는 간단한 예입니다.
<?php // 获取用户输入的关键字 $keyword = $_GET['keyword']; // 创建一个布尔查询 $query = new BoolQuery(); // 添加全文搜索子查询 $query->addMust(new QueryMatchPhrasePrefix(['title' => $keyword])); // 添加建议子查询 $suggestions = new BuildersSuggest(Suggest::RELEVANT_TERMS); $suggestions->setMatchPhrase('title', $keyword); $query->setSuggest($suggestions); // 执行查询 $search = $client->search($query); // 获取搜索结果 $results = $search->getRawResponse()['hits']['hits']; // 获取建议结果 $suggest = $search->getSuggest(); // 输出搜索结果 foreach ($results as $result) { echo $result['_source']['title'] . "<br>"; } // 输出建议结果 foreach ($suggest as $term) { echo $term['text'] . "<br>"; } ?>
V. 요약
이 글에서는 PHP와 Manticore Search를 사용하여 효율적인 검색 기능을 개발하고 제안 기능을 활용하여 검색 결과를 집계하는 방법을 설명합니다. Manticore Search의 API와 기능을 합리적으로 사용함으로써 강력한 검색 엔진을 쉽게 구축하고 더 나은 사용자 경험을 제공할 수 있습니다. 독자들이 실제 개발에서 이러한 기술을 유연하게 활용하여 검색 기능의 품질과 성능을 더욱 향상시킬 수 있기를 바랍니다.
위 내용은 PHP 및 Manticore 검색 개발 가이드: 제안과 함께 검색 결과 집계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!