PHP およびマンティコア検索開発ガイド: ユーザー設定検索機能の構築
インターネットの急速な発展に伴い、ユーザー設定検索機能は多くの Web サイトやアプリケーションで不可欠な機能になりました。よりパーソナライズされた正確な検索結果を提供するには、開発者は適切な検索エンジンを選択し、その機能と API を合理的に使用する必要があります。
この記事では、PHP と Manticore Search を使用してユーザー設定検索機能を開発する詳細な手順と、いくつかのコード例を紹介します。
ステップ 1: Manticore Search のインストールと構成
まず、Manticore Search をダウンロードしてインストールする必要があります。 Manticore Search の最新バージョンのインストール パッケージは、公式 Web サイト (https://manticoresearch.com/) からダウンロードできます。インストールプロセスはオペレーティングシステムによって異なる場合があります。公式ドキュメントに従ってください。
インストールが完了したら、ユーザー設定検索機能を有効にするために Manticore Search を構成する必要があります。 Manticore Search 構成ファイルを開き、必要に応じて次のオプションを設定します。
searchd { listen = 127.0.0.1:9306 binlog_path = /var/lib/manticore pid_file = /var/run/manticore/searchd.pid log = /var/log/manticore/searchd.log query_log = /var/log/manticore/query.log search_logs = 1 rt_mem_limit = 512M } index my_index { type = rt rt_attr_string = name rt_attr_uint = age }
上記の構成では、「my_index」という名前のリアルタイム インデックスを定義し、「name」と「age」の 2 つのプロパティを指定しました。 」。ニーズに応じてさらにプロパティを追加できます。
ステップ 2: インデックス作成
ユーザー設定検索機能の構築を開始する前に、まずデータのインデックスを作成する必要があります。ユーザーの名前と年齢を含むユーザー テーブルがあるとします。
まず、Manticore Search に接続してデータを準備するための PHP スクリプトを作成する必要があります:
<?php require_once('vendor/autoload.php'); use FoolzSphinxQLDriversMultiResultSet; use FoolzSphinxQLDriversPdoConnection; use FoolzSphinxQLHelper; use FoolzSphinxQLSphinxQL; $connection = new Connection(); $connection->setParams(['host' => '127.0.0.1', 'port' => 9306]);
上記のコードでは、サードパーティ ライブラリ「SphinxQL」を使用して Manticore に接続します検索。 Composer 経由でライブラリをインストールしていることを確認してください。
次に、SphinxQL を使用してインデックスを作成し、インデックスにデータを追加します。
<?php // continue from previous code ... $index = 'my_index'; $engine = new SphinxQL($connection); $engine->setConnection($connection); $engine->query("TRUNCATE RTINDEX $index")->execute(); $engine->query("REPLACE INTO $index (name, age) VALUES ('Alice', 25), ('Bob', 30), ('Charlie', 35)")->execute();
上記のコードでは、最初にインデックス データをクリアしてから、インデックス データをインデックスに追加します。 サンプル データ。
ステップ 3: ユーザー設定検索関数を構築する
これで、インデックスが正常に確立され、ユーザー設定検索関数の構築を開始する準備が整いました。私たちの目標は、ユーザーの好みに基づいて年齢をフィルターすることだとします。
まず、PHP で関数を作成する必要があります。この関数はユーザーの設定パラメーターを受け取り、これらのパラメーターに基づいて SphinxQL クエリ ステートメントを構築します。
<?php // continue from previous code ... function buildUserPreferenceQuery($preferences) { $index = 'my_index'; $engine = new SphinxQL($connection); $engine->setConnection($connection); $query = $engine->query("SELECT * FROM $index"); foreach($preferences as $key => $value) { if($key == 'min_age') { $query->where('age', '>=', $value); } elseif($key == 'max_age') { $query->where('age', '<=', $value); } } return $query->execute(); }
上記のコードでは、ユーザーの設定パラメーターを反復処理し、各パラメーターに基づいてクエリ ステートメントを構築します。ここでは、>= 演算子と <= 演算子を使用して範囲クエリを実行します。
最後に、この関数を呼び出して、検索結果を出力できます:
<?php // continue from previous code ... $preferences = [ 'min_age' => 25, 'max_age' => 35 ]; $result = buildUserPreferenceQuery($preferences); foreach($result as $row) { echo "Name: " . $row['name'] . ", Age: " . $row['age'] . " "; }
上記のコードでは、最小年齢パラメータと最大年齢パラメータを含む仮想のユーザー設定を構築し、出力します。検索条件に一致する結果が生成されます。
上記の手順により、PHP と Manticore Search を使用したユーザー設定検索機能の構築に成功しました。ニーズに合わせて拡張および変更できます。開発おめでとうございます!
以上がPHP およびマンティコア検索開発ガイド: ユーザー設定検索関数の構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。