ホームページ >バックエンド開発 >PHPチュートリアル >PHP およびマンティコア検索開発ガイド: 効率的なクラスター検索の構築

PHP およびマンティコア検索開発ガイド: 効率的なクラスター検索の構築

PHPz
PHPzオリジナル
2023-08-06 21:18:141369ブラウズ

PHP および Manticore Search 開発ガイド: 効率的なクラスター検索の構築

Manticore Search は、高性能の全文検索エンジンです。Sphinx 検索エンジンのフォークであり、大規模な検索エンジンを処理するように設計されています。データ セットと高い同時実行性を備え、問い合わせ向けに設計されています。 PHP と非常に緊密に統合されており、豊富な API と機能を提供するため、開発者は効率的なクラスター検索アプリケーションを簡単に構築できます。

この記事では、PHP と Manticore Search を使用して効率的なクラスター検索アプリケーションを構築する方法を紹介します。次の側面について説明します。

  1. Manticore Search のインストール
  2. Manticore Search クラスターへの接続
  3. インデックスの作成と管理
  4. 完全な実行-テキスト検索クエリ
  5. Manticore Search の検索結果に基づく並べ替えとフィルター
  6. 高度な検索機能の実装
  7. クラスター管理と最適化
  8. Manticore Search のインストール

始める前に、Manticore Search をインストールする必要があります。公式 Web サイト (https://www.manticoresearch.com/) から最新のインストール パッケージをダウンロードし、使用しているオペレーティング システムに応じてインストールできます。

  1. マンティコア検索クラスターへの接続

PHP では、PDO 拡張機能を使用してマンティコア検索クラスターに接続できます。まず、PDO 接続オブジェクトを作成し、ホスト アドレス、ポート番号、インデックス ライブラリ名、およびその他の関連情報を指定する必要があります。

$dsn = "mysql:host=127.0.0.1;port=9306;dbname=my_index";
$username = "root";
$password = "";

try {
    $connection = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
    die;
}
  1. インデックスの作成と管理

マンティコア検索 インデックスを使用してデータを保存および検索します。 SQL ステートメントを使用してインデックスを作成し、フィールドのタイプと属性を定義できます。

$createIndexQuery = "CREATE TABLE my_index (
                        id INTEGER,
                        title TEXT,
                        content TEXT,
                        weight INTEGER
                    ) ENGINE='MANTICORE'";

$connection->query($createIndexQuery);

他の SQL ステートメントを使用して、フィールドの追加、フィールド属性の変更など、インデックスの構造を変更することもできます。

  1. 全文検索クエリの実行

Manticore Search を使用した全文検索の実行は簡単です。 MATCH キーワードを使用して検索条件を指定し、AGAINST を使用して検索キーワードを指定できます。

$searchQuery = "SELECT * FROM my_index WHERE MATCH('keyword')";

$result = $connection->query($searchQuery);
$rows = $result->fetchAll(PDO::FETCH_ASSOC);

ここでのキーワードは、単一の単語または複数の単語の組み合わせです。マンティコア検索では、キーワードに関連する結果が返されます。

  1. Manticore Search に基づいて検索結果を並べ替えおよびフィルターする

ORDER BY 句を使用して検索結果を並べ替えることができます:

$searchQuery = "SELECT * FROM my_index WHERE MATCH('keyword') ORDER BY weight DESC";

// 执行查询并获取结果

さらに、 WHERE 句を使用して検索結果をフィルタリングすることもできます。

$searchQuery = "SELECT * FROM my_index WHERE MATCH('keyword') AND category='news'";

// 执行查询并获取结果
  1. 高度な検索機能の実装

基本的な全文検索機能に加えて、Manticore Searchワイルドカード検索、あいまい検索、範囲検索など、多くの高度な検索機能も提供します。これらの機能を実現するには、LIKE、REGEXP、BETWEEN などの演算子を使用できます。

ここにいくつかのサンプル コードがあります:

$searchQuery = "SELECT * FROM my_index WHERE title LIKE '%keyword%'";
$searchQuery = "SELECT * FROM my_index WHERE title REGEXP '[A-Za-z]+word'";
$searchQuery = "SELECT * FROM my_index WHERE date BETWEEN '2022-01-01' AND '2022-12-31'";
  1. クラスターの管理と最適化

Manticore Search は、検索のパフォーマンスとスケーラビリティを向上させるクラスターのデプロイメントをサポートしています。次のコマンドを使用してクラスターを管理できます。

sudo indexer --rotate --all
sudo searchd --stop
sudo searchd --start

さらに、EXPLAIN キーワードを使用してクエリのパフォーマンスを最適化し、クエリの実行プランとインデックスの使用状況を表示することもできます。

概要

この記事では、PHP と Manticore Search を使用して効率的なクラスター検索アプリケーションを構築する方法を学びました。 Manticore Search のインストール、クラスターへの接続、インデックスの作成と管理、全文検索クエリの実行、および高度な検索機能の実装について学びました。

Manticore Search は、PHP と緊密に統合された強力で使いやすい検索エンジンです。 Manticore Searchの機能とAPIを活用することで、さまざまな検索ニーズに応える効率的なクラスター検索アプリケーションを構築できます。この記事がお役に立てば幸いです!

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。