現在の位置: ホーム> 最新記事一覧> php開発練習】マン心検索を使用してパーソナライズされたユーザー検索機能を実装するためのガイド

php開発練習】マン心検索を使用してパーソナライズされたユーザー検索機能を実装するためのガイド

M66 2025-06-22

PHP統合Manticore Search:スマートユーザーの設定検索エクスペリエンスを作成する

現代のWeb開発では、パーソナライズされた検索エクスペリエンスがユーザーの参加と変換率を高める重要な手段になりました。高性能検索エンジンを組み合わせることで、開発者はユーザーの行動や関心の好みに基づいて、より正確なコンテンツマッチングを提供できます。この記事では、PHPとManticore検索を使用して、ユーザーの好みのフィルタリングをサポートする一連の検索機能を構築する方法を示します。

環境の準備: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を再起動して設定を有効にします。

データを準備:PHPを介してインデックス化されています

検索機能を構築する前に、ユーザーデータをインデックスに書き込む必要があります。次の例は、SphinxQLのPHPドライバーを使用して検索サービスに接続し、データを挿入する方法を示しています。

<?php
require_once('vendor/autoload.php');

use Foolz\SphinxQL\Drivers\Connection;
use Foolz\SphinxQL\SphinxQL;

$connection = new Connection();
$connection-> setParams([&#39;host&#39; => &#39;127.0.0.1&#39;、 &#39;port&#39; => 9306]);

$ index = &#39;my_index&#39;;
$ Engine = new SphinxQl($ connection);
$ Engine-> setConnection($ connection);

$ Engine-> Query( "Truncate rtindex $ index") - > execute();
$ Engine-> Query( "$ index(name、age)values( &#39;alice&#39;、25)、( &#39;bob&#39;、30)、( &#39;charlie&#39;、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 == &#39;min_age&#39;){
            $ query-> where( &#39;age&#39;、 &#39;> =&#39;、$ value);
        } elseif($ key == &#39;max_age&#39;){
            $ query-> where( &#39;age&#39;、 &#39;<=&#39;、$ value);
        }
    }

    $ query-> execute();を戻るします。
}

この関数のユーザー設定データのセットに渡し、フィルタリングされた結果を出力できます。

<?php
$preferences = [
    'min_age' => 25、
    &#39;max_age&#39; => 35
];

$ result = burtionuserpreferencequery($ feprences);

foreach($ result as $ row){
    echo "name:"。 $ row [&#39;name&#39;]。 "、 年: " 。 $ row [&#39;age&#39;]。 "\ n";
}

要約します

この記事の例を通じて、環境構成、データのインポート、クエリの構築からプロセス全体を完了しました。 PHPとManticoreの検索を組み合わせて、ユーザーの個人的なニーズを満たす検索機能を効率的に実装し、システムのインテリジェンスレベルを改善できます。インデックスフィールドの拡張、全文検索の追加、ソートソートまたはページングをサポートして、より複雑なビジネスシナリオに合わせて継続できます。