ホームページ  >  記事  >  バックエンド開発  >  PHP およびマンティコア検索開発: プライベート検索エンジンの構築

PHP およびマンティコア検索開発: プライベート検索エンジンの構築

王林
王林オリジナル
2023-08-06 09:09:201368ブラウズ

PHP およびマンティコア検索開発: プライベート検索エンジンの構築

はじめに:
今日のインターネット時代において、検索エンジンは人々が情報を入手する主な方法の 1 つです。 Google や Baidu などのインターネット大手の検索エンジンは、人々の日常生活に欠かせないツールとなっています。ただし、一部の特定のアプリケーション シナリオでは、パブリック検索エンジンの使用は理想的な選択ではありません。この記事では、PHP と Manticore Search を使用してプライベート検索エンジンを構築する方法と実践を紹介します。

1. Manticore Search について
Manticore Search は、Sphinx 検索エンジンのアーキテクチャを採用し、効率的でスケーラブルな全文検索機能を提供するオープン ソースの全文検索エンジンです。 Manticore Search は、マスター/スレーブ レプリケーション、分散インデックス作成、リアルタイム インデックス作成、マルチインデックス クエリ、全文検索などの機能をサポートしており、大量のデータの処理や同時実行性の高い検索シナリオに適しています。

2. Manticore Search のインストール
まず、Manticore Search をインストールする必要があります。次の手順に従って、Linux 環境にインストールできます。

  1. Manticore Search のインストール パッケージをダウンロードします。
  2. インストール パッケージを解凍し、解凍されたディレクトリに入ります。
  3. インストールを実行します。 スクリプトをインストールします。
  4. リスニング ポート、インデックス ディレクトリなど、Manticore Search の関連パラメーターを設定します。
  5. Manticore Search を開始します。

3. PHP 拡張機能を使用して Manticore Search を操作する
Manticore Search は、検索エンジンと対話するための PHP の使用を容易にする PHP 拡張機能を提供します。 PHP 拡張機能を使用して、インデックスを作成し、データを挿入し、クエリを実行できます。以下は簡単なサンプル コードです:

<?php
// 连接到Manticore Search服务
$dsn = 'mysql:host=127.0.0.1;port=9306';
$db = new PDO($dsn);

// 创建索引
$sql = 'CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT, price FLOAT)';
$db->exec($sql);

// 插入数据
$sql = 'INSERT INTO products (id, name, price) VALUES (1, "Apple", 5.99)';
$db->exec($sql);

$sql = 'INSERT INTO products (id, name, price) VALUES (2, "Banana", 3.99)';
$db->exec($sql);

$sql = 'INSERT INTO products (id, name, price) VALUES (3, "Orange", 4.99)';
$db->exec($sql);

// 执行查询
$sql = 'SELECT * FROM products WHERE MATCH("Apple")';
$result = $db->query($sql);

while ($row = $result->fetch()) {
    echo $row['id'] . ' ' . $row['name'] . ' ' . $row['price'] . PHP_EOL;
}

// 关闭连接
$db = null;
?>

上記のコードでは、まず Manticore Search サービスに接続し、「products」という名前のインデックス テーブルを作成します。次に、3 つの製品データを挿入し、名前に「Apple」を含む製品に対する簡単なクエリを実行しました。最後に、ループを通じてクエリ結果を出力します。

4. プライベート検索エンジンを構築する
Manticore Search と PHP を使用して、特定のアプリケーションのニーズを満たすプライベート全文検索エンジンを構築できます。以下は、PHP をバックグラウンド処理スクリプトとして使用し、フォームを通じてユーザーが入力したキーワードを受け取り、検索操作を実行する簡単な例です。

<?php
// 连接到Manticore Search服务
$dsn = 'mysql:host=127.0.0.1;port=9306';
$db = new PDO($dsn);

// 处理用户提交的搜索词
if (isset($_POST['keyword'])) {
    $keyword = $_POST['keyword'];
    $keyword = trim($keyword);
    
    // 执行查询
    $sql = "SELECT * FROM products WHERE MATCH(:keyword)";
    $stmt = $db->prepare($sql);
    $stmt->execute(['keyword' => $keyword]);
    $result = $stmt->fetchAll();
    
    // 输出查询结果
    foreach ($result as $row) {
        echo $row['id'] . ' ' . $row['name'] . ' ' . $row['price'] . PHP_EOL;
    }
}
?>

<form action="" method="post">
    <input type="text" name="keyword" placeholder="请输入关键词">
    <input type="submit" value="搜索">
</form>

上記のコードでは、ユーザーが入力したキーワードを次のように受け取ります。フォームにアクセスし、対応する検索操作をバックグラウンドで実行します。検索結果がページに出力されます。

5. 概要
この記事では、PHP と Manticore Search を使用してプライベート検索エンジンを構築する方法と実践を紹介します。 Manticore Search が提供する PHP 拡張機能を使用すると、インデックスの作成、データの挿入、クエリの実行が簡単に行えます。同時に、PHPのフォーム処理機能と組み合わせて、簡易検索ページを構築し、プライベートな全文検索機能を実装することもできます。この記事がプライベート検索エンジンの構築に少しでも役立つことを願っています。

以上がPHP およびマンティコア検索開発: プライベート検索エンジンの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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