>백엔드 개발 >PHP 튜토리얼 >PHP 및 Manticore Search를 사용하여 전체 텍스트 검색 기능 개발 및 구현

PHP 및 Manticore Search를 사용하여 전체 텍스트 검색 기능 개발 및 구현

WBOY
WBOY원래의
2023-08-08 10:21:311280검색

利用PHP和Manticore Search开发实现全文搜索功能

PHP 및 Manticore 검색을 사용하여 전체 텍스트 검색 기능 개발 및 구현

소개:
전체 텍스트 검색은 최신 웹 애플리케이션에서 일반적이고 중요한 기능 중 하나입니다. 전체 텍스트 내용을 키워드로 검색하여 필요한 정보를 빠르게 찾을 수 있습니다. 이 기사에서는 PHP와 Manticore 검색을 사용하여 전체 텍스트 검색 기능을 개발하고 몇 가지 실용적인 코드 예제를 제공합니다.

1. 맨티코어 검색이란 무엇인가요?
Manticore Search는 빠르고 오픈 소스이며 기능이 풍부한 전체 텍스트 검색 엔진입니다. 오픈소스 프로젝트인 Sphinx Search를 기반으로 하며, 이를 기반으로 많은 개선과 최적화가 이루어졌습니다. Manticore Search는 강력한 전체 텍스트 색인 기능을 갖추고 있으며 실시간 색인 업데이트, 분산 검색 등을 지원합니다. 이 예에서는 Manticore Search를 사용하여 텍스트 데이터를 저장하고 검색합니다.

2. Manticore Search 설치 및 구성
먼저 Manticore Search를 설치하고 구성해야 합니다. Manticore 공식 홈페이지(https://manticoresearch.com/)에서 최신 Manticore Search 설치 패키지를 다운로드 하신 후, 공식 문서에 따라 설치 및 구성하실 수 있습니다.

3. 인덱스 생성
맨티코어 검색을 시작하기 전에 텍스트 데이터를 저장할 인덱스를 생성해야 합니다. 터미널을 열고 Manticore Search 설치 디렉터리로 이동한 후 다음 명령을 사용하여 인덱스를 생성합니다.

$ indexer --all --config /path/to/manticore.conf

그러면 구성 파일에서 인덱스에 대한 설정을 읽어 인덱스에 필요한 디렉터리와 파일이 생성됩니다.

4. 데이터 삽입
검색을 시작하기 전에 인덱스에 데이터를 삽입해야 합니다. 다음 PHP 코드 예제를 사용하여 Manticore Search에 데이터를 삽입할 수 있습니다:

<?php
require_once 'vendor/autoload.php';

$client = new ManticoresearchClient(["host" => "localhost", "port" => 9308]);
$indexName = "my_index";

$indexParams = [
    "body" => [
        "fields" => [
            "title" => [
                "type" => "text",
                "indexed" => true,
                "stored" => true,
            ],
            "content" => [
                "type" => "text",
                "indexed" => true,
                "stored" => false,
            ],
        ]
    ]
];

$response = $client->indices()->create($indexName, $indexParams);

$documentParams = [
    "index" => $indexName,
    "body" => [
        [
            "id" => 1,
            "title" => "PHP全文搜索",
            "content" => "使用PHP和Manticore Search开发实现全文搜索功能",
        ],
        [
            "id" => 2,
            "title" => "Manticore Search简介",
            "content" => "Manticore Search是一个快速、开源且功能丰富的全文搜索引擎。",
        ]
    ]
];

$response = $client->bulk($documentParams);

위의 코드 예제에서는 먼저 Manticore Search의 클라이언트 개체를 만듭니다. 그런 다음 인덱스의 이름과 속성을 정의했습니다. 다음으로 $client->indices()->create() 메소드를 사용하여 인덱스를 생성합니다. 마지막으로 $client->bulk() 메서드를 사용하여 인덱스에 데이터를 삽입합니다. $client->indices()->create()方法创建了一个索引。最后,我们使用$client->bulk()方法将数据插入到索引中。

五、搜索数据
当我们插入数据后,我们可以使用以下PHP代码示例来搜索数据:

<?php
require_once 'vendor/autoload.php';

$client = new ManticoresearchClient(["host" => "localhost", "port" => 9308]);
$indexName = "my_index";

$searchParams = [
    "index" => $indexName,
    "body" => [
        "query" => [
            "match" => [
                "content" => "PHP"
            ]
        ]
    ]
];

$response = $client->search($searchParams);

foreach ($response["hits"]["hits"] as $hit) {
    echo "ID: ".$hit["_id"]."
";
    echo "Title: ".$hit["_source"]["title"]."
";
    echo "Content: ".$hit["_source"]["content"]."
";
}

在上面的代码示例中,我们首先创建了一个Manticore Search的客户端对象。然后,我们定义了搜索参数,指定了要搜索的索引和查询条件。接下来,我们使用$client->search()

5. 데이터 검색

데이터를 삽입한 후 다음 PHP 코드 예제를 사용하여 데이터를 검색할 수 있습니다.
rrreee

위 코드 예제에서는 먼저 Manticore Search의 클라이언트 개체를 만듭니다. 그런 다음 검색할 인덱스와 쿼리 기준을 지정하여 검색 매개변수를 정의했습니다. 다음으로 $client->search() 메서드를 사용하여 루프에서 검색 결과를 검색하고 인쇄합니다. 🎜🎜결론: 🎜PHP와 Manticore Search를 이용하면 쉽게 전체 텍스트 검색 기능을 구현할 수 있습니다. Manticore Search의 강력함과 유연성은 이상적인 선택입니다. 이 기사가 귀하에게 도움이 되기를 바랍니다. Manticore Search의 더 많은 기능과 사용법을 탐구하고 탐색해 보십시오. 🎜

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

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