現代のWeb開発では、パーソナライズされた検索エクスペリエンスがユーザーの参加と変換率を高める重要な手段になりました。高性能検索エンジンを組み合わせることで、開発者はユーザーの行動や関心の好みに基づいて、より正確なコンテンツマッチングを提供できます。この記事では、PHPとManticore検索を使用して、ユーザーの好みのフィルタリングをサポートする一連の検索機能を構築する方法を示します。
まず、Manticore Searchの最新バージョンをダウンロードしてインストールしていることを確認してください。インストールが完了したら、構成ファイルを編集して、リアルタイムインデックスサポートを有効にし、リスニングポート、ログパスなどのパラメーターを設定します。基本的な構成例は次のとおりです。
検索 { 匂いく= 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 } my_indexをインデックスします { type = rt rt_attr_string = name rt_attr_uint = age }
構成が完了したら、Manticore Search Serviceを再起動して設定を有効にします。
検索機能を構築する前に、ユーザーデータをインデックスに書き込む必要があります。次の例は、SphinxQLのPHPドライバーを使用して検索サービスに接続し、データを挿入する方法を示しています。
<?php require_once('vendor/autoload.php'); use Foolz\SphinxQL\Drivers\Connection; use Foolz\SphinxQL\SphinxQL; $connection = new Connection(); $connection-> setParams(['host' => '127.0.0.1'、 'port' => 9306]); $ index = 'my_index'; $ Engine = new SphinxQl($ connection); $ Engine-> setConnection($ connection); $ Engine-> Query( "Truncate rtindex $ index") - > execute(); $ Engine-> Query( "$ index(name、age)values( 'alice'、25)、( 'bob'、30)、( 'charlie'、35)") - > execute();
このステップは、元のデータをクリアし、新しいユーザー情報をインポートし、その後の検索の基盤を築きます。
ユーザーが設定した年齢範囲に基づいて検索する必要があるとします。次の機能を介してクエリステートメントを動的に生成できます。
<?php function buildUserPreferenceQuery($preferences) { global $connection; $index = 'my_index'; $engine = new SphinxQL($connection); $engine-> setConnection($ connection); $ query = $ engine-> query( "select * from $ index"); foreach($ feprences as $ key => $ value){ if($ key == 'min_age'){ $ query-> where( 'age'、 '> ='、$ value); } elseif($ key == 'max_age'){ $ query-> where( 'age'、 '<='、$ value); } } $ query-> execute();を戻るします。 }
この関数のユーザー設定データのセットに渡し、フィルタリングされた結果を出力できます。
<?php $preferences = [ 'min_age' => 25、 'max_age' => 35 ]; $ result = burtionuserpreferencequery($ feprences); foreach($ result as $ row){ echo "name:"。 $ row ['name']。 "、 年: " 。 $ row ['age']。 "\ n"; }
この記事の例を通じて、環境構成、データのインポート、クエリの構築からプロセス全体を完了しました。 PHPとManticoreの検索を組み合わせて、ユーザーの個人的なニーズを満たす検索機能を効率的に実装し、システムのインテリジェンスレベルを改善できます。インデックスフィールドの拡張、全文検索の追加、ソートソートまたはページングをサポートして、より複雑なビジネスシナリオに合わせて継続できます。