PHP およびマンティコア検索開発: タグベースの検索エンジンの構築

WBOY
リリース: 2023-08-06 08:40:01
オリジナル
1486 人が閲覧しました

PHP および Manticore 検索開発: タグベースの検索エンジンの構築

検索エンジンは今日のインターネットの重要な部分であり、大量のデータからユーザーが必要とする情報を迅速にクエリ、照合、表示できます。 。ただし、従来の検索エンジンは基本的な全文検索機能しか提供していないことが多く、データの正確な検索やフィルタリングには不十分です。この記事では、PHP と Manticore Search を使用してタグベースの検索エンジンを構築し、より正確で効率的な検索エクスペリエンスを提供する方法を紹介します。

Manticore Search は、オープン ソースの検索エンジン Sphinx に基づいて開発された全文検索エンジンです。高速かつ強力な全文検索機能を提供するだけでなく、リアルタイムのインデックス更新や複雑なクエリ構文もサポートします。 PHP は、幅広いアプリケーションと豊富な開発ライブラリを備えた人気のあるサーバーサイド スクリプト言語です。

始める前に、Manticore Search をインストールする必要があります。次の手順に従ってインストールできます:

  1. Manticore Search をダウンロードしてインストールします:

    $ 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 Search 拡張機能をインストールする必要があります。次の手順に従ってインストールできます。

  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 Search を使用する方法を示しています。まず、ManticoreSearchConnection クラスを通じて接続オブジェクトを作成し、次に ManticoreSearchSearch クラスを通じてクエリ オブジェクトを作成しました。 Index 属性とlimit 属性を設定することで、クエリのインデックスと返される結果の最大数を指定します。次に、そのタグを含むドキュメントのみが返されるように、タグのフィルター条件を設定します。

最後に、クエリ メソッドを呼び出してクエリ リクエストを送信し、返された結果を処理します。クエリ結果が空でない場合は、matches 配列をたどって、対応するドキュメント ID、タイトル、コンテンツ、およびタグを出力できます。クエリ結果が空の場合は、「結果が見つかりません。」と出力されます。

上記の手順により、PHP と Manticore Search を使用してタグベースの検索エンジンを構築することに成功しました。合理的なインデックス構造とクエリ条件により、ユーザーの個別のニーズを満たす、より正確で効率的な検索機能を実現できます。この記事が、検索エンジン開発に PHP と Manticore Search を使用する読者にとって役立つことを願っています。

以上がPHP およびマンティコア検索開発: タグベースの検索エンジンの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート