PHP と Elasticsearch を使用して強調表示された検索結果を取得する方法
はじめに:
現代のインターネットの世界では、検索エンジンが人々が情報を入手する主な方法となっています。検索結果の読みやすさとユーザー エクスペリエンスを向上させるために、検索キーワードを強調表示することが一般的な要件になっています。この記事では、PHP と Elasticsearch を使用して強調表示された検索結果を取得する方法を紹介します。
1. 準備
始める前に、PHP と Elasticsearch が正しくインストールされ、設定されていることを確認する必要があります。 Composer を使用して PHP の依存関係を管理し、次のコマンドを使用して Elasticsearch の PHP クライアントをインストールできます。
composer require elasticsearch/elasticsearch
2. Elasticsearch に接続します
まず、Elasticsearch クライアント インスタンスを作成する必要があります。 PHP スクリプト。次のコードを使用して Elasticsearch に接続できます:
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build();
3. インデックスとマッピングの作成
検索する前に、Elasticsearch が正しく処理できるようにインデックスを作成し、対応するフィールド マッピングを指定する必要があります。リクエスト。以下は、インデックスとマッピングを作成するサンプル コードです:
$params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', 'fields' => [ 'keyword' => [ 'type' => 'keyword', ], ], ], 'content' => [ 'type' => 'text', 'fields' => [ 'keyword' => [ 'type' => 'keyword', ], ], ], ], ], ], ]; $response = $client->indices()->create($params);
4. 検索を実行し、結果を強調表示します
次に、検索操作の実行を開始し、一致するキーワードを強調表示します。検索を実行し、結果を強調表示するサンプル コードを次に示します。
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => '关键字', ], ], 'highlight' => [ 'fields' => [ 'title' => new stdClass(), 'content' => new stdClass(), ], ], ], ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { $title = isset($hit['highlight']['title'][0]) ? $hit['highlight']['title'][0] : $hit['_source']['title']; $content = isset($hit['highlight']['content'][0]) ? $hit['highlight']['content'][0] : $hit['_source']['content']; echo "标题:{$title} "; echo "内容:{$content} "; }
上記のコードは、Elasticsearch を通じてキーワード ベースの検索を実行し、一致するフィールドを強調表示します。検索結果で、特定のフィールドに一致するキーワードがある場合、そのフィールドの強調表示された結果が返されます。
結論:
この記事では、PHP と Elasticsearch を使用して強調表示された検索結果を取得する方法を紹介します。適切なインデックスとマッピングを設定し、関連する検索パラメーターを使用することで、検索結果の強調表示を簡単に実現できます。これにより、ユーザーの検索結果の理解と読み取りが向上し、ユーザー エクスペリエンスが向上することは間違いありません。
参考資料:
以上がPHP と Elasticsearch を使用して検索結果を強調表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。