ホームページ >バックエンド開発 >PHPチュートリアル >PHP と Manticore Search を使用してリアルタイムの検索候補を作成する
PHP と Manticore Search を使用したリアルタイム検索提案機能の開発
はじめに:
現代のインターネット アプリケーションでは、リアルタイム検索提案機能が非常に一般的になりました。ユーザーが検索ボックスにキーワードを入力すると、システムは関連する検索候補を自動的に表示し、ユーザーが必要なコンテンツを見つけやすくします。この記事では、PHP と Manticore Search を使用してリアルタイム検索候補機能を開発する方法を紹介します。
1.マンティコア検索とは何ですか?
Manticore Search は、Sphinx に基づいて開発されたオープンソースの全文検索エンジンです。 Manticore Search は、高性能の全文検索およびページング機能を提供し、リアルタイムのインデックス更新をサポートします。この記事では、Manticore Search を利用して、リアルタイムの検索候補を実装します。
2. 準備
開発を開始する前に、Manticore Search と PHP 拡張機能 sphinx をインストールする必要があります。具体的なインストール手順については、Manticore Search の公式ドキュメントを参照してください。
3. マンティコア検索インデックスを作成する
まず、検索候補データを保存するためにマンティコア検索インデックスを作成する必要があります。ここでは、ユーザーの名前を検索していると仮定します。
source suggest { type = mysql sql_host = localhost sql_user = your_username sql_pass = your_password sql_db = your_database sql_port = 3306 sql_query_pre = SET NAMES utf8 sql_query = SELECT name, weight() AS weight FROM users } index suggest_index { source = suggest path = /path/to/suggest_index morphology = none min_infix_len = 1 }
ここに対応するデータベース接続情報とパスを変更する必要があります。
$ indexer --config suggest.conf --all --rotate
4. PHP コードを作成します
次に、PHP コードを作成する必要があります。リアルタイム検索の推奨機能を実装します。
<?php $host = 'localhost'; $port = 9306; $index = 'suggest_index'; $cl = new SphinxClient(); $cl->SetServer($host, $port); $cl->SetConnectTimeout(1); // 设置连接超时时间 $cl->SetArrayResult(true); // 将结果转换为数组
<?php $input = $_GET['q']; // 获取用户输入的关键字
<?php $res = $cl->Query($input, $index);
<?php $data = []; if ($res && $res['total']) { foreach ($res['matches'] as $match) { $data[] = ['name' => $match['attrs']['name']]; } } echo json_encode($data);
5. フロントエンド コード
最後に、 PHP バックエンドにリクエストを送信し、検索候補の結果を受け取るフロントエンド コードを記述する必要があります。
<!DOCTYPE html> <html> <head> <title>实时搜索建议</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> </head> <body> <input type="text" id="search-input" placeholder="请输入搜索关键字"> <ul id="search-suggestions"></ul> <script> $(function() { var timer; $('#search-input').on('input', function() { clearTimeout(timer); var query = $(this).val(); timer = setTimeout(function() { $.get('suggest.php', { q: query }, function(data) { var suggestions = ''; $.each(data, function(_, item) { suggestions += '<li>' + item.name + '</li>'; }); $('#search-suggestions').html(suggestions); }); }, 300); }); }); </script> </body> </html>
6. まとめ
PHP と Manticore Search を利用することで、リアルタイムの検索サジェスト機能を簡単に実装できます。これにより、ユーザーの検索エクスペリエンスが向上し、探しているものをより速く見つけられるようになります。この記事がお役に立てば幸いです!
以上がPHP と Manticore Search を使用してリアルタイムの検索候補を作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。