ホームページ  >  記事  >  バックエンド開発  >  PHP とマンティコア検索開発: 検索結果のランキングを向上させるためのヒント

PHP とマンティコア検索開発: 検索結果のランキングを向上させるためのヒント

WBOY
WBOYオリジナル
2023-08-06 18:04:43980ブラウズ

PHP およびマンティコア検索開発: 検索結果の並べ替えを改善するためのヒント

検索エンジンは、最新のインターネット アプリケーションに不可欠な部分です。検索結果のランキングは、ユーザー エクスペリエンスと検索の精度に直接影響します。この記事では、PHP とマンティコア検索を使用して開発中に検索結果のランキングを向上させる方法についてのヒントを取り上げます。

  1. Manticore Search のインストール

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

sudo apt-get install manticoresearch

インストールが完了したら、Manticore Search サービスを開始します:

sudo service manticoresearch start
  1. データ準備
#まず、データをマンティコア検索にインポートする必要があります。ここでは、製品名、説明、価格などの製品関連情報を含む電子商取引 Web サイトがあると仮定した簡単な例を使用します。

デモンストレーションの便宜上、「products」という名前のインデックスを作成し、いくつかのサンプル データを追加します。

<?php

// 连接Manticore Search服务
$dsn = 'mysql:host=127.0.0.1;port=9306';
$username = '';
$password = '';

$pdo = new PDO($dsn, $username, $password);

// 创建索引
$sql = "CREATE TABLE products (
    id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    description TEXT,
    price FLOAT(10,2) NOT NULL
) ENGINE = Manticore;";

$pdo->exec($sql);

// 添加示例数据
$productData = [
    ['name' => 'iPhone 12', 'description' => 'The latest iPhone model', 'price' => 999.99],
    ['name' => 'Samsung Galaxy S21', 'description' => 'Powerful Android phone', 'price' => 799.99],
    ['name' => 'Google Pixel 5', 'description' => 'Flagship Google phone', 'price' => 699.99],
];

foreach ($productData as $product) {
    $sql = "INSERT INTO products (name, description, price) VALUES (?, ?, ?)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$product['name'], $product['description'], $product['price']]);
}

echo 'Data imported successfully!';

    基本的な検索を実装します
次へ接続します。 , 基本的な検索機能を実装してみましょう。ユーザーは製品名と説明をキーワードで検索し、関連製品のリストを返すことができます。これを実現するには、Manticore Search が提供する全文検索機能を使用します。

<?php

// 连接Manticore Search服务
$dsn = 'mysql:host=127.0.0.1;port=9306';
$username = '';
$password = '';

$pdo = new PDO($dsn, $username, $password);

// 执行搜索
$keyword = 'iPhone';
$sql = "SELECT * FROM products WHERE MATCH (:keyword)";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':keyword', $keyword);
$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 显示搜索结果
foreach ($results as $result) {
    echo 'Product Name: ' . $result['name'] . PHP_EOL;
    echo 'Description: ' . $result['description'] . PHP_EOL;
    echo 'Price: ' . $result['price'] . PHP_EOL;
    echo '------------------------' . PHP_EOL;  
}

    検索結果の並べ替えを改善する
検索結果の並べ替えを改善するには、Manticore Search の並べ替え機能を使用できます。価格、販売量などのさまざまなフィールドに応じて検索結果を並べ替えることができます。

製品価格に基づいて検索結果を並べ替える例を次に示します:

<?php

// 连接Manticore Search服务
$dsn = 'mysql:host=127.0.0.1;port=9306';
$username = '';
$password = '';

$pdo = new PDO($dsn, $username, $password);

// 执行搜索
$keyword = 'iPhone';
$sql = "SELECT * FROM products WHERE MATCH (:keyword) ORDER BY price DESC";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':keyword', $keyword);
$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 显示搜索结果
foreach ($results as $result) {
    echo 'Product Name: ' . $result['name'] . PHP_EOL;
    echo 'Description: ' . $result['description'] . PHP_EOL;
    echo 'Price: ' . $result['price'] . PHP_EOL;
    echo '------------------------' . PHP_EOL;  
}

この例では、

ORDER BY 価格 DESC によって価格を降順に並べ替えています。

価格に加えて、販売量、評価などの他のフィールドに基づいて並べ替えることもできます。それに応じて

ORDER BY 句を変更するだけです。

概要

この記事では、PHP と Manticore Search を使用して検索機能を開発する方法を紹介し、検索結果のランキングを向上させるためのヒントをいくつか提供します。これらの技術を通じて、さまざまなニーズやシナリオに応じて検索結果を的を絞って並べ替えることができ、ユーザー エクスペリエンスと検索の精度が向上します。

この記事が、PHP 開発で検索結果の並べ替えを最適化するときに発生する問題の解決に役立つことを願っています。開発の努力を頑張ってください!

以上がPHP とマンティコア検索開発: 検索結果のランキングを向上させるためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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