PHP 및 Manticore 검색 개발 가이드: 제안과 함께 검색 결과 집계

WBOY
풀어 주다: 2023-08-06 06:02:01
원래의
1541명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!