現在の位置: ホーム> 最新記事一覧> PHPマイクロサービスに効率的な分散検索およびインデックス機能を実装する方法

PHPマイクロサービスに効率的な分散検索およびインデックス機能を実装する方法

M66 2025-07-02

PHPマイクロサービスに効率的な分散検索およびインデックス機能を実装する方法

インターネットの急速な発展に伴い、ビッグデータの適用により、検索エンジンが現代社会のインフラストラクチャの1つになりました。 Webアプリケーションでは、検索およびインデックス機能は、効率的なデータ取得を提供するだけでなく、より正確な情報フィルタリングをユーザーにもたらすこともできます。この記事では、PHP Microserviceアーキテクチャに分散検索およびインデックス機能を実装して、検索エンジンのパフォーマンスを最適化する方法を紹介します。

分散検索とインデックスの概要

分散検索およびインデックス作成テクノロジーは、巨大なデータセットを複数のシャードに分割し、それらを異なるサーバーで並行して処理します。このテクノロジーには、主に次の重要なコンポーネントが含まれています。

  • 分散ストレージ:データは複数のサーバーに保存され、データ検索効率はシャードインデックスを介して改善されます。
  • 分散検索:複数のシャードを並行して処理することにより、検索速度を大幅に高速化し、最終的に検索結果と戻り値をマージします。
  • 分散インデックス:データクエリの処理速度を改善するために、シェルディングを介してインデックスを作成します。

ElasticSearchを使用して、分散検索とインデックス作成を実装します

Elasticsearchは、Apache Luceneに基づいて構築されたオープンソース分散検索および分析エンジンであり、あらゆる種類のアプリケーションに適した強力なフルテキスト検索および分散検索機能を提供します。 Elasticsearchを使用してPHPマイクロサービスに分散検索とインデックスを実装する方法の特定の手順を次に示します。

PHP ElasticsearchクライアントにElasticsearchをインストールします

まず、UbuntuシステムにElasticsearchをインストールします。

 <span class="fun">$ sudo apt-getアップデート</span>
<span class="fun">$ sudo apt-get install elasticsearch</span>

次に、Composerを介してPHP Elasticsearchクライアントをインストールします。

<span class="fun">作曲家には、Elasticsearch/Elasticsearchが必要です</span>

ElasticSearchクラスターに接続します

ElasticSearchクラスターに接続して、PHPでElasticSearchクライアントを使用して、以下はサンプルコードです。

 <span class="fun">「ベンダー/autoload.php」が必要です。</span>
 <span class="fun">$ client = elasticsearchclientbuilder :: create() - > build();</span>

インデックスを作成し、ドキュメントを追加します

次に、インデックスを作成して、ElasticSearchクライアントを使用してドキュメントを追加できます。コードの例は次のとおりです。

 <span class="fun">$ params = [</span>
<span class="fun"> &#39;index&#39; => &#39;my_index&#39;、</span>
<span class="fun"> &#39;body&#39; => [</span>
<span class="fun"> 「設定」=> [</span>
<span class="fun"> &#39;number_of_shards&#39; => 2、</span>
<span class="fun"> &#39;number_of_replicas&#39; => 1、</span>
<span class="fun"> ]、、</span>
<span class="fun"> 「マッピング」=> [</span>
<span class="fun"> 「プロパティ」=> [</span>
<span class="fun"> &#39;title&#39; => [&#39;type&#39; => &#39;text&#39;]、</span>
<span class="fun"> &#39;content&#39; => [&#39;type&#39; => &#39;text&#39;]、</span>
<span class="fun"> 「タイムスタンプ」=> [&#39;type&#39; => &#39;date&#39;]、</span>
<span class="fun"> ]</span>
<span class="fun"> ]</span>
<span class="fun"> ];</span>
 <span class="fun">$ response = $ client-> indices() - > create($ params);</span>
 <span class="fun">$ params = [</span>
<span class="fun"> &#39;index&#39; => &#39;my_index&#39;、</span>
<span class="fun"> &#39;id&#39; => &#39;1&#39;、</span>
<span class="fun"> &#39;body&#39; => [</span>
<span class="fun"> 「タイトル」=> &#39;例&#39;、</span>
<span class="fun"> &#39;content&#39; => &#39;これはドキュメントの例です。</span>
<span class="fun"> 「タイムスタンプ」=> &#39;2022-01-01T00:00:00Z&#39;、</span>
<span class="fun"> ];</span>
 <span class="fun">$ response = $ client-> index($ params);</span>

検索操作を実行します

最後に、ElasticSearchクライアントを検索できます。検索のコード例を次に示します。

 <span class="fun">$ params = [</span>
<span class="fun"> &#39;index&#39; => &#39;my_index&#39;、</span>
<span class="fun"> &#39;body&#39; => [</span>
<span class="fun"> 「クエリ」=> [</span>
<span class="fun"> 「一貫性のある」=> [</span>
<span class="fun"> &#39;content&#39; => &#39;例&#39;、</span>
<span class="fun"> ]、、</span>
<span class="fun"> ]</span>
<span class="fun"> ];</span>
 <span class="fun">$ response = $ client-> search($ params);</span>
 <span class="fun">foreach($ response [&#39;hits&#39;] [&#39;hits&#39;] as $ hit){</span>
<span class="fun"> echo $ hit [&#39;_ source&#39;] [&#39;title&#39;];</span>
 <span class="fun">}</span>

要約します

この記事では、PHPマイクロサービスに分散検索およびインデックス機能を実装する方法を紹介し、詳細なコードの例を提供します。 ElasticSearchを使用すると、効率的な検索エンジンを実現し、システムのパフォーマンスとスケーラビリティを向上させることができます。これらの手順を通じて、独自の分散検索サービスをより簡単に構築し、ユーザーに高速かつ正確な情報検索エクスペリエンスを提供できます。