ホームページ  >  記事  >  バックエンド開発  >  PHP およびマンティコア検索開発ガイド: ユーザー設定検索関数の構築

PHP およびマンティコア検索開発ガイド: ユーザー設定検索関数の構築

王林
王林オリジナル
2023-08-05 10:58:441035ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。