現代の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の検索を組み合わせて、ユーザーの個人的なニーズを満たす検索機能を効率的に実装し、システムのインテリジェンスレベルを改善できます。インデックスフィールドの拡張、全文検索の追加、ソートソートまたはページングをサポートして、より複雑なビジネスシナリオに合わせて継続できます。