ホームページ >バックエンド開発 >PHPチュートリアル >PHP と Manticore Search を使用して検索候補機能を開発する

PHP と Manticore Search を使用して検索候補機能を開発する

王林
王林オリジナル
2023-08-05 13:41:061584ブラウズ

PHP と Manticore Search を使用した検索候補機能の開発

最近の Web サイトやアプリケーションでは、検索機能は非常に重要なコンポーネントです。ユーザーエクスペリエンスを向上させるために、検索候補機能が広く使用されています。検索候補機能では、ユーザーが入力したキーワードに基づいて、関連する検索候補と自動補完を提供できます。この記事では、PHP と Manticore Search を使用して、簡単な検索候補機能を開発します。

Manticore Search は、オープン ソースの検索エンジン Sphinx に基づいて書き直されたバージョンで、より高いパフォーマンスと豊富な機能を提供します。全文検索、リアルタイムインデックス作成、地理位置情報検索などの機能をサポートします。 Manticore Search を使用して、高速かつ効率的な検索候補機能を構築します。

まず、サーバーに Manticore Search をインストールする必要があります。次のコマンドでインストールできます:

$ sudo apt-get update
$ sudo apt-get install manticoresearch

インストールが完了したら、検索データを保存するためのインデックスを作成する必要があります。マンティコア検索では、インデックスはドキュメントのコレクションであり、各ドキュメントには 1 つ以上のフィールドが含まれます。次のコマンドを使用して、「suggestions」という名前のインデックスを作成できます。

$ mysql -P 9306
mysql> CREATE TABLE suggestions(title TEXT, suggestion BIGINT) INDEX title;
mysql> quit

次に、PHP を使用して Manticore Search と対話します。まず、manticoresearch/manticoresearch パッケージをインストールする必要があります。インストールは Composer を通じて完了できます:

$ composer require manticoresearch/manticoresearch

インストールが完了したら、検索候補機能を実装するための PHP コードを作成できます。まず、Manticore Search への接続を確立する必要があります。

<?php
require 'vendor/autoload.php';

use ManticoresearchClient;

$client = new Client();
$client->connect();

次に、検索候補を取得する関数を作成します。この関数は、ユーザーが入力したキーワードに基づいて Manticore Search で検索クエリを実行し、関連する検索候補を返します:

function getSuggestions($client, $query) {
    $params = [
        'index' => 'suggestions',
        'body' => [
            'query' => [
                'match' => [
                    'title' => [
                        'query' => $query,
                        'operator' => 'and'
                    ]
                ]
            ],
            'suggest' => [
                'suggestion' => [
                    'prefix' => $query,
                    'completion' => [
                        'field' => 'suggestion'
                    ]
                ]
            ]
        ]
    ];

    $response = $client->search($params);

    $suggestions = [];
    foreach ($response['suggest']['suggestion'][0]['options'] as $option) {
        $suggestions[] = $option['text'];
    }

    return $suggestions;
}

最後に、検索候補関数をテストする簡単なコードを作成できます:

$query = $_GET['q'];

if ($query) {
    $suggestions = getSuggestions($client, $query);

    foreach ($suggestions as $suggestion) {
        echo $suggestion . "<br>";
    }
}

上記の例では、$_GET['q'] を使用して、ユーザーが検索ボックスに入力したキーワードを取得します。次に、getSuggestions 関数を呼び出して関連する検索候補を取得し、ページに表示します。

概要

PHP と Manticore Search を使用すると、高速かつ効率的な検索候補機能を簡単に開発できます。 Manticore Search は強力な全文検索とオートコンプリート機能を提供し、アプリケーション内で優れた検索エクスペリエンスを提供できるようにします。この記事が、マンティコア検索を学び、検索候補機能を開発するために使用するのに役立つことを願っています。

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

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