ホームページ  >  記事  >  バックエンド開発  >  PHP およびマンティコア検索開発: 検索結果を最適化するための主要なパフォーマンス調整

PHP およびマンティコア検索開発: 検索結果を最適化するための主要なパフォーマンス調整

PHPz
PHPzオリジナル
2023-08-06 12:13:45956ブラウズ

PHP およびマンティコア検索開発: 検索結果を最適化するための主要なパフォーマンス調整

はじめに: ビッグ データの時代では、検索結果を最適化するための主要なパフォーマンス調整が非常に重要です。この記事では、PHP と Manticore Search を使用して開発してこれを実現する方法を説明し、コード例を示します。

はじめに:

インターネットの急速な発展に伴い、検索エンジンは人々が情報を入手する主な方法の 1 つになりました。したがって、検索結果の精度、速度、ユーザー エクスペリエンスをどのように向上させるかが、企業や開発者にとって重要な関心事となっています。

PHP は、Web 開発に広く使用されている人気のあるサーバーサイド スクリプト言語です。 Manticore Search は、Sphinx 検索エンジンと完全な互換性があり、さらに多くの新機能と改善が加えられたオープンソースの高性能検索エンジンです。

この記事では、PHP と Manticore Search を使用して主要なパフォーマンス調整を開発し、検索結果を最適化する方法に焦点を当てます。

パート 1: Manticore Search のインストールと構成

まず、Manticore Search をインストールし、基本的な構成を実行する必要があります。 Manticore Search の最新バージョンは、公式 Web サイト (https://manticoresearch.com/) からダウンロードできます。

インストールが完了したら、Manticore Search 構成ファイル (通常は /etc/manticoresearch/manticore.conf) を次のように変更します。

indexer
{
  mem_limit = 1G
}

searchd
{
  listen = 127.0.0.1:9306:mysql41
  log = /var/log/manticoresearch/searchd.log
  query_log = /var/log/manticoresearch/query.log
}

メモリ制限やリスニングなどの主なパラメータは次のとおりです。住所。 。構成が完了したら、Manticore Search サービスを開始します。

$ sudo systemctl start manticore

パート 2: インデックスの作成とデータのインポート

検索の前に、インデックスを作成し、検索するデータをインポートする必要があります。

映画情報を保存するデータベースがあり、ユーザーが映画のタイトルと説明で検索できるようにインデックスを作成するとします。次のコード例を実行してインデックスを作成できます。

$index = new SphinxClient;
$index->SetServer('localhost', 9306);
$index->SetConnectTimeout(1);
$index->AddQuery('REPLACE INTO movies (id, title, description) VALUES (1, "The Shawshank Redemption", "Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.")');
$index->AddQuery('REPLACE INTO movies (id, title, description) VALUES (2, "The Godfather", "The aging patriarch of an organized crime dynasty transfers control of his clandestine empire to his reluctant son.")');
$index->RunQueries();

ここでは、Manticore Search と対話するメソッドを提供するオープン ソースの Sphinx クライアント ライブラリを使用します。

パート 3: 検索の最適化

インデックスの作成とデータのインポートが完了したら、検索の最適化を開始できます。

次の例は、PHP と Manticore Search を使用して基本的な検索を最適化する方法を示しています。

$query = "redemption";
$search = new SphinxClient;
$search->SetServer('localhost', 9306);
$search->SetConnectTimeout(1);
$search->SetMatchMode(SPH_MATCH_EXTENDED);
$search->SetRankingMode(SPH_RANK_PROXIMITY_BM25);
$search->SetSortMode(SPH_SORT_RELEVANCE);
$result = $search->Query($query, 'movies');
while ($info = $search->GetArrayResult()) {
    foreach ($info['matches'] as $match) {
        $id = $match['id'];
        $weight = $match['weight'];
        // 处理搜索结果
    }
}

ここでは、マッチング モードを拡張モード (SPH_MATCH_EXTENDED) に設定し、ランキング モードを BM25 モード (SPH_RANK_PROXIMITY_BM25) に設定します。 ) の場合、並べ替え方法は関連性並べ替え (SPH_SORT_RELEVANCE) です。

上記の最適化策により、より正確かつ高速な検索結果を得ることができます。

結論:

この記事では、PHP と Manticore Search を使用して、検索結果の主要なパフォーマンス調整を行う方法について説明します。 Manticore Search をインストールして構成し、インデックスを作成してデータをインポートし、検索の最適化を実行することで、より良い検索エクスペリエンスを得ることができます。これらの例が開発者による検索結果の最適化に役立つことを願っています。

参考資料:

  • Manticore Search 公式サイト: https://manticoresearch.com/
  • Sphinx クライアント ライブラリ: https://github.com/ pecl /スフィンクス######

以上がPHP およびマンティコア検索開発: 検索結果を最適化するための主要なパフォーマンス調整の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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