ホームページ  >  記事  >  バックエンド開発  >  PHP と Manticore Search を使用して簡単な検索候補を作成する

PHP と Manticore Search を使用して簡単な検索候補を作成する

王林
王林オリジナル
2023-08-05 21:45:061410ブラウズ

PHP と Manticore Search を使用した高速検索提案機能の開発

概要:
検索提案機能は、最新の検索エンジンに不可欠な部分であり、ユーザーの検索語に対する即座の提案を提供し、ユーザーに次の情報を提供します。入力するとリアルタイムで更新されます。この記事では、PHP と Manticore Search を使用してクイック検索候補を実装する方法について説明します。

Manticore Search は、オープン ソースの検索エンジン Sphinx をベースにした高性能の全文検索ソリューションです。高速でスケーラブルで、あらゆる規模の検索アプリケーションに合わせて高度にカスタマイズできます。

ステップ 1: Manticore Search のインストールと構成
まず、Manticore Search をインストールする必要があります。公式 Web サイト (https://manticoresearch.com/downloads) から、オペレーティング システムに適したバージョンをダウンロードできます。インストールが完了したら、いくつかの基本的な構成を実行する必要があります。 Manticore Search 構成ファイル (manticore.conf) を開き、必要な変更を加えます。正しいリスニング アドレスとポートを指定していることを確認し、検索候補を有効にしてください。

ステップ 2: データ ソースを作成する
検索候補機能では、検索候補の辞書を形成するためのデータ ソースとしていくつかのデータを準備する必要があります。一般的なアプローチは、データベースを使用してデータを保存することです。ここでは、すべての製品名を含む「products」という名前のデータベース テーブルがすでに存在すると仮定します。

ステップ 3: PHP を使用して Manticore Search に接続する
PHP では、公式に提供されている manticoresearch/manticoresearch ライブラリを使用して、Manticore Search に接続して操作できます。次のコマンドを実行してライブラリをインストールします:

composer require manticoresearch/manticoresearch-php

次に、PHP ファイルを作成し、必要なクラスを取り込みます:

<?php
require "vendor/autoload.php";
use ManticoresearchConnectionSimpleConnection;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryMatchQuery;
use ManticoresearchQueryQueryString;

ステップ 4: 検索候補機能をコーディングする
今すぐこれで、検索候補機能を実装するコードを作成できるようになりました。以下に、検索候補をリアルタイムで取得する方法を示す簡単な例を示します。

<?php
require "vendor/autoload.php";
use ManticoresearchConnectionSimpleConnection;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryMatchQuery;
use ManticoresearchQueryQueryString;

// 建立与Manticore Search的连接
$simpleConnection = new SimpleConnection();
$simpleConnection->setHost('localhost')->setPort(9308);

// 创建搜索建议的索引
$suggestionsIndex = new ManticoresearchIndex();
$suggestionsIndex->setIndex('suggestions')->setConnection($simpleConnection);

// 获取用户输入的搜索词
$searchTerm = $_GET['term'];

// 创建查询
$query = new BoolQuery();
$query->add(new QueryString(['query' => $searchTerm, 'fields' => ['name']]));
$suggestionsIndex->search($query);
$result = $suggestionsIndex->getResultSet();

// 处理结果
$suggestions = [];
foreach ($result->getDocuments() as $doc) {
    $suggestions[] = $doc->name;
}

// 返回搜索建议
echo json_encode($suggestions);

ステップ 5: フロントエンド ページで検索候補機能を使用する
フロントエンド ページでは、次のように使用できます。検索候補を処理して表示するための JavaScript。以下は、jQuery と Autocomplete プラグインを使用して検索候補を表示する簡単な例です。

<!DOCTYPE html>
<html>
<head>
    <title>搜索建议示例</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
    $(function() {
        $("#search").autocomplete({
            source: "suggest.php", // 后端脚本处理的URL
            minLength: 2, // 最小输入字符数
            delay: 500 // 延迟时间
        });
    });
    </script>
</head>
<body>
    <div class="ui-widget">
        <label for="search">搜索:</label>
        <input id="search">
    </div>
</body>
</html>

上記のコードを 2 つのファイル (suggest.php と Index.html) として保存し、Web 上の PHP にデプロイします。サーバー上で、ブラウザでの検索サジェスト機能を体験できます。

結論:
PHP と Manticore Search を使用すると、クイック検索サジェスト機能を簡単に実装できます。 Manticore Search は強力な全文検索機能を提供し、PHP を使用すると、検索エンジンと簡単に対話して検索結果を処理できます。この記事が検索の提案を作成するのに役立つことを願っています。

以上がPHP と Manticore Search を使用して簡単な検索候補を作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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