>백엔드 개발 >PHP 튜토리얼 >PHP 및 Manticore Search를 사용하여 다양한 파일 검색 기능 개발

PHP 및 Manticore Search를 사용하여 다양한 파일 검색 기능 개발

PHPz
PHPz원래의
2023-08-05 10:54:21944검색

PHP와 Manticore 검색을 사용하여 다양한 파일 검색 기능 개발

소개:
현대 정보 기술의 발전으로 파일 검색 기능은 다양한 애플리케이션의 표준 기능이 되었습니다. 효율적이고 정확한 파일 검색 경험을 제공하기 위해 PHP 및 Manticore Search를 개발에 사용할 수 있습니다. Manticore Search는 매우 유연한 성능과 기능을 갖춘 오픈 소스 전체 텍스트 검색 엔진입니다. 이번 글에서는 PHP와 Manticore Search를 활용하여 다양한 파일 검색 기능을 개발하는 방법을 소개하고 코드 예제를 제공하겠습니다.

1. Manticore Search 설치 및 구성
먼저 Manticore Search를 설치하고 구성해야 합니다. 맨티코어 검색 최신 버전은 공식 홈페이지(https://manticoresearch.com/)에서 다운로드 받을 수 있습니다. 설치가 완료되면 인덱스를 생성하고 해당 필드를 구성해야 합니다. 다음은 인덱스 구성 파일(index.conf)의 예입니다.

source src
{
    type            = mysql
    sql_host        = localhost
    sql_user        = username
    sql_pass        = password
    sql_db          = database
    sql_query_pre   = SET NAMES utf8
    sql_query       = SELECT id, title, content FROM documents
}

index idx
{
    source          = src
    path            = /path/to/index/
    docinfo         = extern
    morphology      = stem_en
    min_word_len    = 2
    charset_type    = utf-8
}

위 구성은 MySQL 데이터베이스에 연결하고 그 안의 문서 테이블을 데이터 소스로 사용합니다. usernamepassworddatabase/path/to/index/를 실제 값으로 바꾸세요.

2. 기본 파일 검색 기능
다음으로, PHP 코드를 이용하여 맨티코어 검색에 접속하여 기본적인 파일 검색 기능을 수행할 수 있습니다. 다음은 PHP 코드 예시입니다.

<?php
// 连接到Manticore Search
$host = 'localhost';
$port = 9306;
$index = 'idx';

$sphinx = new SphinxClient();
$sphinx->setServer($host, $port);

// 执行文件搜索
$query = 'php开发';
$result = $sphinx->query($query, $index);

// 输出搜索结果
if ($result['total_found'] > 0) {
    foreach ($result['matches'] as $match) {
        echo 'ID: ' . $match['id'] . '<br>';
        echo '标题: ' . $match['attrs']['title'] . '<br>';
        echo '内容: ' . $match['attrs']['content'] . '<br><br>';
    }
} else {
    echo '没有找到匹配的文件。';
}
?>

위 코드에서는 먼저 SphinxClient 인스턴스가 생성되고 맨티코어 검색에 연결되는 주소와 포트가 설정됩니다. 그런 다음 키워드 검색이 수행되고 결과가 $result 변수에 저장됩니다. 마지막으로 루프를 통해 검색 결과가 출력됩니다.

3. 고급 파일 검색 기능
Manticore Search는 기본 키워드 검색 외에도 정렬, 필터링, 강조 표시 등 고급 파일 검색 기능도 지원합니다. 다음은 몇 가지 샘플 코드입니다.

  1. 파일 검색 결과 정렬

    // 按文件标题排序搜索结果
    $sphinx->setSortMode(SPH_SORT_EXTENDED, 'title ASC');
    
    // 按相关性和文件标题排序搜索结果
    $sphinx->setSortMode(SPH_SORT_EXTENDED, '@relevance DESC, title ASC');
  2. 파일 검색 결과 필터링

    // 仅搜索包含某个标签的文件
    $sphinx->setFilter('tags', [1]);
    
    // 仅搜索包含某个标签且在一定时间范围内的文件
    $sphinx->setFilter('tags', [1]);
    $sphinx->setFilterRange('timestamp', $start, $end);
  3. 검색 결과 강조 표시

    // 设置高亮显示的HTML标签和样式
    $sphinx->setOverride('html', '<span class="highlight">', '</span>');
    
    // 获取带有高亮显示的文件标题和内容
    $sphinx->setSelect('*, HIGHLIGHT(title) AS highlighted_title, HIGHLIGHT(content) AS highlighted_content');

위 코드는 고급 파일 검색 기능의 일부만 보여줍니다. , 필요에 따라 추가로 사용자 정의할 수 있습니다.

요약:
이 글에서는 PHP와 Manticore Search를 사용하여 다양한 파일 검색 기능을 개발하는 방법을 소개합니다. 먼저 Manticore Search를 설치 및 구성하고 색인을 생성했습니다. 그런 다음 PHP 코드를 사용하여 Manticore 검색에 연결하고 기본 및 고급 파일 검색 기능을 보여줍니다. 이 기사가 강력한 파일 검색 기능을 빠르게 개발하는 데 도움이 되기를 바랍니다.

위 내용은 PHP 및 Manticore Search를 사용하여 다양한 파일 검색 기능 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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