PHP と Manticore Search を使用して、リアルタイムのデータ同期を備えた検索エンジンを開発する

WBOY
リリース: 2023-08-07 08:50:01
オリジナル
817 人が閲覧しました

PHP と Manticore Search を使用して、リアルタイム データ同期を備えた検索エンジンを開発する

検索エンジンは、今日の情報化時代において重要な役割を果たしています。インターネットの急速な発展に伴い、検索エンジンに対するユーザーの需要もますます高まっています。従来の検索エンジンは通常、最新のデータを同期するのにある程度の時間がかかりますが、リアルタイム データが必要な一部のシナリオでは不十分です。この問題を解決するために、この記事では、PHP と Manticore Search を使用して、リアルタイム データ同期を備えた検索エンジンを開発する方法を紹介します。

まず、マンティコア検索とは何なのかを理解しましょう。 Manticore Search は、効率的な全文検索とリアルタイムのインデックス作成機能を提供する、オープンソースの高性能テキスト検索エンジンです。 Elasticsearch と同様の SQL クエリと JSON クエリ構文をサポートしており、小規模な Web サイトから大規模なデータ プラットフォームまでのさまざまなアプリケーション シナリオに適しています。 Manticore Search は、高速性、リアルタイムのインデックス作成および分散展開のサポートを特徴としており、リアルタイムのデータ同期を備えた検索エンジンの開発には理想的な選択肢となっています。

まず、最新バージョンの PHP と Manticore Search がインストールされていることを確認する必要があります。ターミナルまたはコマンド プロンプトで次のコマンドを入力すると、バージョンを確認できます。

php -v
searchd --help | grep Manticore
ログイン後にコピー

表示されたバージョン番号が最新の場合は、次の手順に進むことができます。

次に、Manticore Search クライアント ライブラリを PHP プロジェクトに導入する必要があります。これは、次のコードを manticore.php ファイルとして保存し、そのファイルをプロジェクトに導入することで実現できます。

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

use ManticoresearchClient;
use ManticoresearchIndex;

$host = 'localhost';
$port = 9308;

$client = new Client(['host' => $host, 'port' => $port]);

$index = new Index($client);
$index->setIndex('example_index');

// 在这里进行索引的创建、删除、更新等操作
ログイン後にコピー

次に、example_index という名前のファイルを作成します。インデックスを作成し、インデックス内でいくつかの操作を実行できます。一般的な操作の例をいくつか示します。

  • インデックスの作成:

    $index->create(['columns' => [
      ['name' => 'title', 'type' => 'text', 'options' => ['indexed' => true, 'stored' => true]],
      ['name' => 'content', 'type' => 'text', 'options' => ['indexed' => true, 'stored' => true]],
    ]]);
    ログイン後にコピー
  • インデックスの削除:

    $index->drop();
    ログイン後にコピー
  • データの挿入:

    $index->bulk('insert', [
      ['index' => ['_id' => 1, 'title' => '文章标题1', 'content' => '文章内容1']],
      ['index' => ['_id' => 2, 'title' => '文章标题2', 'content' => '文章内容2']],
    ]);
    ログイン後にコピー
  • データの更新:

    $index->bulk('update', [
      ['update' => ['_id' => 1, 'doc' => ['title' => '新的标题1']]],
      ['update' => ['_id' => 2, 'doc' => ['title' => '新的标题2']]],
    ]);
    ログイン後にコピー
  • データの削除:

    $index->bulk('delete', [
      ['delete' => ['_id' => 1]],
      ['delete' => ['_id' => 2]],
    ]);
    ログイン後にコピー
  • クエリ データ:

    $query = [
      'index' => 'example_index',
      'body' => [
          'query' => [
              'match' => [
                  'title' => '关键词',
              ],
          ],
      ],
    ];
    
    $result = $client->search($query);
    
    foreach ($result['hits']['hits'] as $hit) {
      echo $hit['_source']['title'] . ': ' . $hit['_source']['content'] . "
    ";
    }
    ログイン後にコピー

    上記のコード例は、インデックスの作成、データの挿入、更新、削除、クエリの実行方法を示しています。実際のニーズに応じて調整してください。

    これらの簡単なサンプル コードを通じて、PHP と Manticore Search を使用して、リアルタイム データ同期を備えた検索エンジンを開発する方法を確認できます。この方法は、リアルタイムのデータ需要のシナリオを満たすために、データがリアルタイムで更新された後、すぐに検索エンジンに同期する機能を実現できます。この記事がお役に立てば幸いです!

    以上がPHP と Manticore Search を使用して、リアルタイムのデータ同期を備えた検索エンジンを開発するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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