インターネットの急速な発展に伴い、ビッグデータの適用により、検索エンジンが現代社会のインフラストラクチャの1つになりました。 Webアプリケーションでは、検索およびインデックス機能は、効率的なデータ取得を提供するだけでなく、より正確な情報フィルタリングをユーザーにもたらすこともできます。この記事では、PHP Microserviceアーキテクチャに分散検索およびインデックス機能を実装して、検索エンジンのパフォーマンスを最適化する方法を紹介します。
分散検索およびインデックス作成テクノロジーは、巨大なデータセットを複数のシャードに分割し、それらを異なるサーバーで並行して処理します。このテクノロジーには、主に次の重要なコンポーネントが含まれています。
Elasticsearchは、Apache Luceneに基づいて構築されたオープンソース分散検索および分析エンジンであり、あらゆる種類のアプリケーションに適した強力なフルテキスト検索および分散検索機能を提供します。 Elasticsearchを使用してPHPマイクロサービスに分散検索とインデックスを実装する方法の特定の手順を次に示します。
まず、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クラスターに接続して、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"> 'index' => 'my_index'、</span>
<span class="fun"> 'body' => [</span>
<span class="fun"> 「設定」=> [</span>
<span class="fun"> 'number_of_shards' => 2、</span>
<span class="fun"> 'number_of_replicas' => 1、</span>
<span class="fun"> ]、、</span>
<span class="fun"> 「マッピング」=> [</span>
<span class="fun"> 「プロパティ」=> [</span>
<span class="fun"> 'title' => ['type' => 'text']、</span>
<span class="fun"> 'content' => ['type' => 'text']、</span>
<span class="fun"> 「タイムスタンプ」=> ['type' => 'date']、</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"> 'index' => 'my_index'、</span>
<span class="fun"> 'id' => '1'、</span>
<span class="fun"> 'body' => [</span>
<span class="fun"> 「タイトル」=> '例'、</span>
<span class="fun"> 'content' => 'これはドキュメントの例です。</span>
<span class="fun"> 「タイムスタンプ」=> '2022-01-01T00:00:00Z'、</span>
<span class="fun"> ];</span>
<span class="fun">$ response = $ client-> index($ params);</span>
最後に、ElasticSearchクライアントを検索できます。検索のコード例を次に示します。
<span class="fun">$ params = [</span>
<span class="fun"> 'index' => 'my_index'、</span>
<span class="fun"> 'body' => [</span>
<span class="fun"> 「クエリ」=> [</span>
<span class="fun"> 「一貫性のある」=> [</span>
<span class="fun"> 'content' => '例'、</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 ['hits'] ['hits'] as $ hit){</span>
<span class="fun"> echo $ hit ['_ source'] ['title'];</span>
<span class="fun">}</span>
この記事では、PHPマイクロサービスに分散検索およびインデックス機能を実装する方法を紹介し、詳細なコードの例を提供します。 ElasticSearchを使用すると、効率的な検索エンジンを実現し、システムのパフォーマンスとスケーラビリティを向上させることができます。これらの手順を通じて、独自の分散検索サービスをより簡単に構築し、ユーザーに高速かつ正確な情報検索エクスペリエンスを提供できます。