>  기사  >  백엔드 개발  >  PHP 및 Manticore 검색 개발: 태그 기반 검색 엔진 구축

PHP 및 Manticore 검색 개발: 태그 기반 검색 엔진 구축

WBOY
WBOY원래의
2023-08-06 08:38:001471검색

PHP 및 Manticore 검색 개발: 태그 기반 검색 엔진 구축

검색 엔진은 오늘날 인터넷의 중요한 부분으로, 대량의 데이터에서 사용자가 요구하는 정보를 신속하게 쿼리하고 일치시키고 표시할 수 있습니다. 그러나 기존 검색 엔진은 기본적인 전체 텍스트 검색 기능만 제공하는 경우가 많으며 이는 데이터의 정확한 검색 및 필터링에 충분하지 않습니다. 이 기사에서는 보다 정확하고 효율적인 검색 경험을 제공하기 위해 PHP 및 Manticore 검색을 사용하여 태그 기반 검색 엔진을 구축하는 방법을 소개합니다.

Manticore Search는 오픈 소스 검색 엔진 Sphinx를 기반으로 개발된 전체 텍스트 검색 엔진입니다. 빠르고 강력한 전체 텍스트 검색 기능을 제공할 뿐만 아니라 실시간 인덱스 업데이트 및 복잡한 쿼리 구문도 지원합니다. PHP는 광범위한 애플리케이션과 풍부한 개발 라이브러리를 갖춘 인기 있는 서버측 스크립팅 언어입니다.

시작하기 전에 Manticore Search를 설치해야 합니다. 다음 단계에 따라 설치할 수 있습니다:

  1. Manticore 검색 다운로드 및 설치:

    $ wget https://github.com/manticoresoftware/manticoresearch/releases/download/3.6.0/manticore-3.6.0-200714-58157c26-release.tar.gz
    $ tar -xvf manticore-3.6.0-200714-58157c26-release.tar.gz
    $ cd manticore-3.6.0/bin
    $ ./searchd
  2. 색인 생성:

    $ ./searchd
    $ mysql -P9306 -e "CREATE TABLE documents (id int, title text, content text, tags multi)"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (1, 'Document 1', 'This is the content of document 1', 'php, search')"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (2, 'Document 2', 'This is the content of document 2', 'mysql, database')"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (3, 'Document 3', 'This is the content of document 3', 'php, database')"

이제 Manticore Search의 설치 및 색인 생성이 완료되었으므로 계속 진행하겠습니다. PHP 코드 작성 프로세스에.

먼저 PHP용 Manticore 검색 확장을 설치해야 합니다. 다음 단계에 따라 설치할 수 있습니다.

  1. 확장 기능을 다운로드하고 컴파일합니다.

    $ git clone https://github.com/manticoresoftware/php-manticore.git
    $ cd php-manticore
    $ phpize
    $ ./configure
    $ make
    $ sudo make install
  2. php.ini 파일에서 확장 기능을 활성화합니다.

    extension=manticore.so

위 단계를 완료한 후 PHP 작성을 시작할 수 있습니다. 태그 기반 검색 엔진을 구축하는 코드입니다. 다음은 샘플 코드입니다.

<?php
$host = 'localhost';
$port = 9306;
$index = 'default';
$query = 'php';

// 连接Manticore Search
$conn = new ManticoreSearchConnection();
$conn->connect($host, $port);

// 创建查询
$search = new ManticoreSearchSearch($conn);
$search->index($index);
$search->limit(10);
$search->setMatchMode(ManticoreSearchSearch::SPH_MATCH_EXTENDED);

// 添加标签过滤条件
$search->setFilter('tags', [$query], true);

// 发送查询请求
$result = $search->query('');

// 处理查询结果
if (!empty($result['matches'])) {
    foreach ($result['matches'] as $match) {
        echo 'ID: ' . $match['id'] . '<br>';
        echo 'Title: ' . $match['attrs']['title'] . '<br>';
        echo 'Content: ' . $match['attrs']['content'] . '<br>';
        echo 'Tags: ' . $match['attrs']['tags'] . '<br><br>';
    }
} else {
    echo 'No results found.';
}

// 关闭连接
$conn->close();

위 코드는 태그 기반 검색에 Manticore 검색을 사용하는 방법을 보여줍니다. 먼저 ManticoreSearchConnection 클래스를 통해 연결 개체를 생성한 후 ManticoreSearchSearch 클래스를 통해 쿼리 개체를 생성했습니다. index 및 Limit 속성을 설정하여 쿼리 인덱스와 최대 반환 결과 수를 지정합니다. 다음으로 해당 태그가 포함된 문서만 반환되도록 태그에 대한 필터 기준을 설정합니다.

마지막으로 쿼리 메서드를 호출하여 쿼리 요청을 보내고 반환된 결과를 처리합니다. 쿼리 결과가 비어 있지 않으면 일치 배열을 순회하여 해당 문서 ID, 제목, 콘텐츠 및 태그를 출력할 수 있습니다. 쿼리 결과가 비어 있으면 "결과가 없습니다."가 출력됩니다.

위 단계를 통해 우리는 PHP와 Manticore Search를 사용하여 태그 기반 검색 엔진을 성공적으로 구축했습니다. 합리적인 인덱스 구조와 쿼리 조건을 통해 사용자의 개인화된 요구를 충족시키기 위해 보다 정확하고 효율적인 검색 기능을 구현할 수 있습니다. 이 기사가 검색 엔진 개발을 위해 PHP와 Manticore Search를 사용하는 독자들에게 도움이 되기를 바랍니다.

위 내용은 PHP 및 Manticore 검색 개발: 태그 기반 검색 엔진 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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