PHP と Elasticsearch がオートコンプリート機能を実装する方法
はじめに:
オートコンプリート機能は、最新の Web アプリケーションの一般的な機能の 1 つです。ユーザー入力に基づいて関連するヒントや提案を提供することで、ユーザー エクスペリエンスと検索の精度が向上します。 Elasticsearch は、高速、スケーラブル、効率的な全文検索機能を提供する強力なオープンソース検索エンジンです。 PHP と Elasticsearch を組み合わせると、オートコンプリート機能を簡単に実装できます。
手順:
<?php require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', 'analyzer' => 'standard', ], ], ], ], ]; $response = $client->indices()->create($params); if ($response['acknowledged']) { echo 'Index created successfully'; } ?>
上記のコード スニペットは、my_index
という名前のインデックスを作成し、title
という名前のフィールドを定義します。 type
は text
に設定され、このフィールドにテキスト データが格納されることを示します。 analyzer
は standard
に設定されています。これは、全文検索に標準トークナイザーを使用することを意味します。
<?php require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'title' => 'Elasticsearch', ], ]; $response = $client->index($params); if ($response['result'] == 'created') { echo 'Data inserted successfully'; } ?>
上記のコード スニペットは、ドキュメントの title
フィールドの値が「Elasticsearch」であるドキュメントを my_index
インデックスに挿入します。
<?php require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'suggest' => [ 'my_suggestion' => [ 'text' => 'ela', 'completion' => [ 'field' => 'title', ], ], ], ], ]; $response = $client->suggest($params); $suggestions = $response['suggest']['my_suggestion'][0]['options']; foreach ($suggestions as $suggestion) { echo $suggestion['text']." "; } ?>
上記のコード スニペットは、suggest
API を使用して、入力テキストに一致する候補のリストを取得します。 text
フィールドにユーザーの入力を渡します。 completion
フィールドでは、オートコンプリート機能が必要なフィールドを指定します。
まとめ:
PHP と Elasticsearch を組み合わせることで、オートコンプリート機能を簡単に実装できます。まず、Elasticsearch をインストールし、インデックスとマッピングを作成する必要があります。次に、データを挿入し、suggest
API を使用してオートコンプリート機能から提案を取得します。上記の手順とサンプル コードは、Elasticsearch を使用して PHP にオートコンプリート機能を実装する方法を理解するのに役立ちます。
以上がPHPとElasticsearchでオートコンプリート機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。