ホームページ  >  記事  >  バックエンド開発  >  PHP と Xunsearch を使用して、検索結果のインテリジェントな並べ替えとフィルタリングを実装する方法

PHP と Xunsearch を使用して、検索結果のインテリジェントな並べ替えとフィルタリングを実装する方法

PHPz
PHPzオリジナル
2023-07-29 11:37:451482ブラウズ

PHP と Xunsearch を使用して、検索結果のインテリジェントな並べ替えとフィルタリングを実現する方法

検索エンジンは、最新のインターネット アプリケーションで重要な役割を果たしており、ユーザーが大量のデータから必要なものを迅速に見つけるのに役立ちます。 . 必須の内容です。大規模な Web サイトの場合、検索結果のインテリジェントな並べ替えとフィルタリングは不可欠な機能であり、ユーザーが必要な結果をより正確に取得できるようになります。この記事では、PHP と Xunsearch 検索エンジン ライブラリを使用して、検索結果のインテリジェントな並べ替えとフィルタリングを実現する方法を紹介します。

1. インストールと設定 Xunsearch

Xunsearch は、中国語の単語分割に基づいた強力な全文検索エンジン ライブラリであり、豊富な検索機能を統合し、高いパフォーマンスと拡張性を備えています。まず、Xunsearch をインストールする必要があります。これは次の手順で実行できます。

  1. Xunsearch 公式 Web サイトからインストール パッケージをダウンロードし、適切なディレクトリに解凍します。
  2. install.sh スクリプトを実行してインストールし、プロンプトに従ってインストール プロセスを完了します。
  3. sdk/php/app/demo.ini 設定ファイルを変更し、データベース接続方法とインデックス保存パスを設定します。

2. インデックスの構築

インデックスの構築は検索エンジンにとって重要なステップであり、これにより検索エンジンは大量のデータから必要なコンテンツを迅速に見つけることができます。以下は、Xunsearch インデックスを確立するためのサンプル コードです:

<?php
require_once('/path/to/XS.php');

$xs = new XS('demo'); // 连接到名为 demo 的搜索服务
$index = $xs->index; // 获取索引对象

$index->clean(); // 清空原有索引
$index->beginRebuild(); // 开始重建索引

// 从数据库中获取需要建立索引的数据
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM articles');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $doc = new XSDocument();
    $doc->setFields($row);
    $index->add($doc); // 将文档添加到索引中
}

$index->endRebuild(); // 结束重建索引

3. 検索結果のインテリジェントな並べ替え

検索エンジンは、最も関連性の高いコンテンツをユーザーに表示するために、検索結果を並べ替える必要があります。 Xunsearch は、デフォルトの TF-IDF ソート、関連性によるソート、時間によるソートなど、さまざまなソート アルゴリズムを提供します。以下は関連性に従ってソートするためのサンプル コードです:

<?php
require_once('/path/to/XS.php');

$xs = new XS('demo'); // 连接到名为 demo 的搜索服务
$search = $xs->search; // 获取搜索对象
$search->setFuzzy(true); // 启用模糊搜索

$query = 'PHP语言'; // 用户的搜索关键词
$search->setQuery($query); // 设置搜索关键词

$search->setLimit(10); // 设置每页显示的结果数量
$search->setSort('relevance'); // 设置按相关度排序

$docs = $search->search(); // 执行搜索并获取结果

foreach ($docs as $doc) {
    echo $doc->title . "<br>";
    echo $doc->content . "<br>";
}

4. 検索結果のフィルタリング

ソートに加えて、検索エンジンはユーザーが検索結果を取得できるようにフィルタリング機能も提供する必要があります。望む結果をより正確に。 Xunsearchでは、特定のフィールドの範囲を設定したり、複数のフィールドに複数値フィルタリングを設定したりするなど、フィルタ条件を設定するためのさまざまな方法が提供されています。以下は、フィールド範囲フィルタリングを設定するためのサンプル コードです。

<?php
require_once('/path/to/XS.php');

$xs = new XS('demo'); // 连接到名为 demo 的搜索服务
$search = $xs->search; // 获取搜索对象

$search->setFuzzy(true); // 启用模糊搜索
$search->setLimit(10); // 设置每页显示的结果数量

$query = 'PHP语言'; // 用户的搜索关键词
$search->setQuery($query); // 设置搜索关键词

// 设置字段范围筛选
$search->addRange('publish_time', '2019-01-01 00:00:00', '2020-01-01 23:59:59');

$docs = $search->search(); // 执行搜索并获取结果

foreach ($docs as $doc) {
    echo $doc->title . "<br>";
    echo $doc->content . "<br>";
}

上記のコード例を通じて、PHP と Xunsearch を使用して検索結果のインテリジェントな並べ替えとフィルタリングを実装する方法を確認できます。このような機能により、ユーザー エクスペリエンスが効果的に向上し、ユーザーが必要なコンテンツをすばやく見つけやすくなります。もちろん、Xunsearch はさらに多くの検索機能もサポートしており、特定のニーズに応じて調整および拡張できます。

以上がPHP と Xunsearch を使用して、検索結果のインテリジェントな並べ替えとフィルタリングを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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