PHP와 Manticore Search를 활용한 검색 자동완성 기능 개발

WBOY
풀어 주다: 2023-08-07 22:54:01
원래의
1419명이 탐색했습니다.

PHP 및 Manticore 검색을 사용하여 검색 자동 완성 기능 개발

소개:
오늘날 인터넷 시대에 검색 기능은 많은 애플리케이션과 웹사이트에서 중요한 부분이 되었습니다. 검색 자동 완성 기능은 사용자 경험과 검색 정확도를 향상시키는 핵심 요소입니다. 이 기사에서는 PHP와 Manticore 검색을 사용하여 사용자가 필요한 것을 더 빨리 찾을 수 있도록 검색 자동 완성 기능을 개발하는 방법을 소개합니다.

1. 맨티코어 검색이란 무엇인가요?
Manticore Search는 오픈 소스 검색 엔진 Sphinx를 기반으로 한 전체 텍스트 검색 소프트웨어입니다. 기존 검색 엔진과 비교하여 Manticore Search는 더 빠른 인덱싱 및 검색 속도, 더 나은 내결함성 및 확장성을 제공합니다. 전체 텍스트 검색, 패싯 검색, 지리적 위치 검색 및 기타 기능을 지원하며 다양한 애플리케이션 시나리오에 적합합니다.

2. 맨티코어 검색 색인 생성
먼저, 검색할 콘텐츠를 저장할 맨티코어 검색 색인을 생성해야 합니다. 다음 명령을 통해 "autocomplete"라는 인덱스를 생성할 수 있습니다.

index autocomplete
{
    type = rt
    rt_mem_limit = 512M
    path = /var/lib/manticore/autocomplete
    charset_table = utf-8
    min_prefix_len = 2
    min_word_len = 2
}
로그인 후 복사

이 인덱스에서 rt_mem_limit는 메모리 제한을 지정하고, path는 인덱스의 파일 저장 경로를 지정하고, charset_table은 문자 세트를 지정하고, min_prefix_len 및 min_word_len은 최소 접두사를 지정합니다. 길이 및 최소 단어 길이.

3. 색인에 문서 추가
다음으로 검색할 문서를 색인에 추가해야 합니다. 이는 다음 PHP 코드 예제를 통해 달성할 수 있습니다:

<?php
$client = new SphinxClient();
$client->setServer('localhost', 9312);
$client->setMatchMode(SPH_MATCH_ANY);
$client->setFieldWeights(array('title' => 10, 'content' => 1));

$documents = array(
    array(
        'id' => 1,
        'title' => 'PHP开发',
        'content' => 'PHP是一种广泛使用的开源脚本语言,它特别适用于Web开发。',
    ),
    array(
        'id' => 2,
        'title' => 'Manticore Search',
        'content' => 'Manticore Search是一个基于Sphinx的全文搜索软件,提供了更快的索引和搜索速度。',
    ),
    // 添加更多文档...
);

foreach ($documents as $document) {
    $client->addDocument($document['title'], $document['content'], $document['id']);
}

$result = $client->runQueries();
?>
로그인 후 복사

위 코드에서 우리는 Manticore Search와 상호 작용하는 PHP용 도구 클래스인 SphinxClient 클래스를 사용합니다. 서버 주소와 포트 번호를 설정하고, 일치 모드를 임의 일치로 설정하고, 제목 가중치를 10으로, 콘텐츠 가중치를 1로 설정했습니다. 그러면 검색할 문서가 루프를 통해 하나씩 색인에 추가됩니다.

4. 검색 자동 완성 기능 구현
검색 자동 완성 기능을 구현하기 위해 맨티코어 검색의 실시간 색인 기능을 사용할 수 있습니다. 라이브 인덱싱을 빠르게 업데이트하고 검색할 수 있어 실시간 검색 피드백이 가능합니다.

다음 PHP 코드 예제를 통해 검색 자동 완성을 구현할 수 있습니다.

<?php
$keyword = $_GET['keyword'];

$client->setMatchMode(SPH_MATCH_EXTENDED2);
$client->limit(0, 5); // 给出最多5个自动补全结果

$client->resetFilters();
$client->setFilter('prefix', '', array($keyword));

$result = $client->runQueries();
$suggestions = $result[0]['words'];

foreach ($suggestions as $suggestion) {
    echo $suggestion['word'];
}
?>
로그인 후 복사

이 코드에서는 GET 요청을 통해 사용자가 입력한 검색 키워드를 얻습니다. 그런 다음 setMatchMode 메소드를 통해 일치 모드를 확장 일치로 설정하고, 제한 메소드를 통해 최대 5개의 자동 완성 결과가 반환되도록 설정합니다. 그런 다음 setFilter 메소드를 사용하여 키워드 접두사가 붙은 결과로 검색어를 제한합니다. 마지막으로 runQueries 메소드를 통해 검색어를 실행하고 키워드 추천 결과를 얻는다. 그런 다음 foreach 루프를 사용하여 키워드 제안을 차례로 출력합니다.

요약:
PHP와 Manticore 검색을 사용하면 검색 자동 완성 기능을 쉽게 구현할 수 있습니다. 맨티코어 검색 색인을 생성하고 문서를 추가한 뒤, 실시간 색인과 특정 검색어문을 활용하면 검색 자동완성 기능을 빠르게 구현할 수 있습니다. 이를 통해 사용자 경험이 크게 향상되고 사용자가 원하는 것을 더 빠르게 찾을 수 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 PHP와 Manticore Search를 활용한 검색 자동완성 기능 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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