Web アプリケーションの台頭により、検索エンジンは最新のアプリケーションに不可欠な機能になりました。以前は SQL クエリを使用してデータを検索していましたが、SQL は検索専用に設計されたものではありませんでした。この欠点を補うために、Apache Solr、Elasticsearch などの全文検索エンジンが作成されました。
Elasticsearch は、人気のある Lucene ベースの全文検索エンジンで、リアルタイムのデータ分析と検索エンジンにすぐに使用できる分散検索および分析機能を提供します。従来のリレーショナル データベースと比較して、Elasticsearch はクエリをより高速に実行でき、高度に動的なデータ構造をより適切に処理でき、より豊富なクエリ言語をサポートします。
この記事では、PHP アプリケーションで Elasticsearch を使用する方法を紹介します。
環境の準備
まず、ローカル環境またはリモートサーバーに Elasticsearch をインストールする必要があります。 Elasticsearch は、Windows、macOS、Linux などの一般的なオペレーティング システムをすべてサポートしています。公式 Web サイトからさまざまなバージョンのインストーラーを入手することも、パッケージ マネージャーを使用してインストールすることもできます。
PHP の elasticsearch クライアント ライブラリを使用するには、PHP の elasticsearch クライアント拡張機能もインストールする必要があります。 PECL 経由または手動でダウンロード、コンパイル、インストールできます。以下は PECL の使用例です:
pecl install elasticsearch
次に、php.ini に次の行を追加します:
extension=elasticsearch.so
インストールが完了したら、PHP を使用して Elasticsearch を操作できます。
PHP での Elasticsearch の使用
PHP で Elasticsearch を使用するには、Elasticsearch クライアント クラスまたはライブラリを使用する必要があります。現在、Elasticsearch-PHP、Elasticsearch-DSL、Elastica など、多くの PHP Elasticsearch クライアント ライブラリが利用可能です。
この記事では、Elasticsearch-PHP ライブラリを使用して、Elasticsearch の使用方法を示します。
まず、Elasticsearch クライアント オブジェクトを作成する必要があります:
$client = ElasticsearchClientBuilder::create()->build();
これで、このクライアント オブジェクトを使用して Elasticsearch との接続を確立し、さまざまな操作を実行できます。
ドキュメントのインデックス作成と検索
Elasticsearch では、ドキュメントは JSON 形式のデータを参照します。 PHP Elasticsearch クライアント ライブラリを使用すると、PHP 配列を JSON 形式に簡単に変換し、Elasticsearch にインデックスを付けることができます。まず、インデックス (リレーショナル データベースのテーブルと同様) を選択し、そのインデックスにデータを追加する必要があります。
$params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => '1', 'body' => ['title' => 'My first document', 'content' => 'Hello World'] ]; $response = $client->index($params);
上記のコードでは、index
メソッドを使用してドキュメントにインデックスを付けました。 index
メソッドには、少なくとも次のキーを含むパラメータ配列が必要です:
-
index
: インデックスの名前 -
type
: ドキュメントのタイプ -
id
: ドキュメントの一意の識別子 -
body
: ドキュメント データを含む配列または JSON 形式の文字列
上記のコード例は、#my_index
という名前のインデックスを作成し、タイプ my_type
、ドキュメントの一意識別子 1 を持ち、title を含みます。
および content
フィールド。ドキュメントにインデックスが付けられ、Elasticsearch に保存されると、ドキュメントを検索できるようになります。
$params = [ 'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'match' => [ 'title' => 'My first document' ] ] ] ]; $response = $client->search($params);
上記のコードでは、search
メソッドを使用してドキュメントを検索します。 search
メソッドには、少なくとも次のキーを含む引数配列が必要です:
-
index
: 検索するインデックスの名前 -
type
: 検索するドキュメントのタイプ -
body
: 実際の検索クエリを含む配列
上記のコード例は検索しましたfor my_index
インデックスでは、タイプ my_type
および title
のドキュメントに My first document
が含まれています。検索結果は、クエリに一致するドキュメントを含む JSON 形式の応答です。
ページ分けと並べ替え
検索結果セットが大きい場合、結果をページ分けしたり並べ替えたりする必要がある場合があります。 Elasticsearch によって提供されるパラメーターを使用して、これら 2 つの機能を実現できます。
$params = [ 'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'match' => [ 'title' => 'document' ] ] ], 'size' => 10, 'from' => 0, 'sort' => ['title' => ['order' => 'asc']] ]; $response = $client->search($params);
上記のコードでは、次のパラメータを追加しました:
- #size
: ページごとのドキュメントの数
#from - : ページングに使用される開始ドキュメントの位置
- :
title
フィールドによって昇順に並べ替えます。
上の例では、
に一致する最初の 10 個のドキュメントを取得し、それらを title
フィールドで昇順に並べ替えます。 集計検索
Elasticsearch は、検索結果セットに対してさまざまな分析を実行する手法である集計検索もサポートしています。たとえば、検索結果から
author フィールドの一意の値をすべて抽出できます。 <pre class='brush:php;toolbar:false;'>$params = [
'index' => 'my_index',
'type' => 'my_type',
'body' => [
'aggs' => [
'unique_authors' => [
'terms' => [
'field' => 'author.keyword',
'size' => 10
]
]
]
]
];
$response = $client->search($params);</pre>
上記のコードでは、パラメータ配列の新しいキーとして
を使用し、その中に unique_authors
という名前の集計検索を定義します。 terms
は、author
フィールドの値に基づいてグループ化および集計することを意味します。 field
キーは集計するフィールドを指定するために使用され、size
キーは集計されたグループのサイズ制限を指定します。 ######結論は###
Elasticsearch は、多くの最新の Web アプリケーションに不可欠な部分となっている強力な全文検索エンジンであり、データの処理を改善し、リアルタイム検索を実行するのに役立ちます。この記事では、PHP で Elasticsearch を使用する方法と、ドキュメントのインデックス付け、検索、ページ付け、並べ替えの方法について説明します。さらに、Elasticsearchを使用して集計検索を行う方法も紹介します。これで、Elasticsearch を使用して PHP アプリケーションに効率的かつ高速な検索を実装する方法を学習しました。
以上がPHP で Elasticsearch テクノロジーを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

ホットトピック









