ホームページ >バックエンド開発 >PHPチュートリアル >PHP とマンティコアの検索開発: Web サイトの検索エクスペリエンスを向上させる秘訣

PHP とマンティコアの検索開発: Web サイトの検索エクスペリエンスを向上させる秘訣

WBOY
WBOYオリジナル
2023-08-06 13:21:021250ブラウズ

PHP とマンティコア検索開発: Web サイトの検索エクスペリエンスを向上させる秘訣

最新の Web サイトとして、ユーザーを引き付け、ユーザー エクスペリエンスを向上させるには、効率的で正確な検索機能を提供することが重要です。 PHP と Manticore Search を組み合わせることで、この目標を達成できます。この記事では、PHP と Manticore Search を使用して強力な検索機能を開発し、Web サイトの検索エクスペリエンスを向上させる方法を紹介します。

1. Manticore Search の概要

Manticore Search は、Sphinx 検索エンジンと同じコード ベースに基づいたオープン ソースの全文検索エンジンです。 Manticore Search の強力な検索機能と高性能機能により、多くの Web サイトやアプリケーションにとって最初の選択肢となります。全文検索、リアルタイムインデックス作成、分散検索などの機能をサポートしています。

2. Manticore Search のインストール

まず、サーバーに Manticore Search をインストールする必要があります。公式 Web サイト (https://manticoresearch.com/) からインストール パッケージをダウンロードし、関連ドキュメントに従ってインストールできます。

3. インデックスの設定

Manticore Search を使用する前に、データのインデックスを作成する必要があります。インデックスは、データを保存し、高速な検索を可能にするために使用されるデータ構造です。

たとえば、記事のデータベースがあり、タイトル、コンテンツ、タグを検索したいとします。 「articles」というインデックスを作成し、検索する必要があるフィールドを指定できます。

次はインデックスを作成するサンプル コードです:

<?php
// 连接到Manticore Search服务器
$mysqli = new mysqli('127.0.0.1', 'username', 'password', 'articles_db', 9306);

// 创建索引
$mysqli->query("DROP TABLE IF EXISTS articles_index");
$mysqli->query("CREATE TABLE articles_index(title TEXT, content TEXT, tags TEXT) 
    ENGINE = 'MANTICORE'");

// 将数据插入索引
$mysqli->query("INSERT INTO articles_index(title, content, tags) 
    VALUES('PHP开发入门指南', '本指南将介绍PHP开发的基础知识', 'PHP, 开发')");
$mysqli->query("INSERT INTO articles_index(title, content, tags) 
    VALUES('Manticore Search教程', '快速入门 Manticore Search', 'Manticore, 搜索引擎')");
...
?>

4. 検索の実行

インデックスを設定した後、PHP と Manticore Search を使用して検索を実行できます。オペレーション。

以下は簡単な検索機能のサンプルコードです:

<?php
// 连接到Manticore Search服务器
$mysqli = new mysqli('127.0.0.1', 'username', 'password', 'articles_db', 9306);

// 执行搜索
$query = "SELECT * FROM articles_index WHERE MATCH('PHP开发')";
$result = $mysqli->query($query);

// 处理搜索结果
while ($row = $result->fetch_assoc()) {
    echo $row['title'] . "<br>";
    echo $row['content'] . "<br>";
    echo $row['tags'] . "<br>";
    echo "<br>";
}
?>

上記のコードは「PHP開発」を含む記事を検索し、タイトル、内容、タグを出力します。

5. 検索エクスペリエンスの向上

基本的な検索機能に加えて、いくつかのテクニックと最適化によって検索エクスペリエンスを向上させることもできます。

  1. 全文検索機能を使用する

Manticore Search は、テキストを照合してランク付けできる全文検索機能をサポートしています。 MATCH ステートメントと AGAINST ステートメントを使用して、全文検索操作を実行できます。

たとえば、検索結果をランク付けし、関連性によって並べ替えることができます。

$query = "SELECT *, WEIGHT() AS relevance FROM articles_index WHERE MATCH('PHP开发') 
    ORDER BY relevance DESC";
  1. ページングと並べ替え

その他の検索結果については、次のようになります。ページング機能とソート機能を使用して検索結果を管理できます。 LIMIT ステートメントと OFFSET ステートメントを使用してページングを実装し、ORDER BY ステートメントを使用して並べ替えを実装できます。

たとえば、ページごとに 10 件の結果を表示し、LIMIT と OFFSET によってページングを制御できます。

$query = "SELECT * FROM articles_index WHERE MATCH('PHP开发') 
    ORDER BY relevance DESC LIMIT 10 OFFSET 0";
  1. 検索候補

ユーザーエクスペリエンスを考慮して、ユーザー入力に基づいて候補となる検索キーワードを提供する検索提案機能を実装できます。これは、Manticore Search のオートコンプリート機能を使用して実行できます。

$query = "CALL KEYWORDS('PHP开', 'articles_index', 10)";
$result = $mysqli->query($query);

while ($row = $result->fetch_assoc()) {
    echo $row['token'] . "<br>";
}

上記のコードは、ユーザーが入力したキーワードに基づいて関連する提案を返します。

6. 概要

PHP と Manticore Search を使用すると、強力な検索機能を簡単に開発し、Web サイトの検索エクスペリエンスを向上させることができます。 Manticore Search の全文検索、ページングと並べ替え、検索候補、その他の機能を使用して、よりインテリジェントで効率的な検索を実現できます。この記事があなたのウェブサイトの検索エクスペリエンスを改善し、より多くのユーザーを引き付けるのに役立つことを願っています。

以上がPHP とマンティコアの検索開発: Web サイトの検索エクスペリエンスを向上させる秘訣の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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