ホームページ  >  記事  >  バックエンド開発  >  PHPとManticore Searchを使用して、さまざまなファイル検索機能を開発します

PHPとManticore Searchを使用して、さまざまなファイル検索機能を開発します

PHPz
PHPzオリジナル
2023-08-05 10:54:21894ブラウズ

PHP と Manticore Search を使用してさまざまなファイル検索機能を開発する

はじめに:
現代の情報技術の発展において、ファイル検索機能はさまざまなアプリケーションの標準となっています。効率的かつ正確なファイル検索エクスペリエンスを提供するために、開発には PHP と Manticore Search を使用できます。 Manticore Search は、柔軟性の高いパフォーマンスと機能を備えたオープンソースの全文検索エンジンです。この記事では、PHP と Manticore Search を使用してさまざまなファイル検索機能を開発する方法とコード例を紹介します。

1. Manticore Search のインストールと構成
まず、Manticore Search をインストールして構成する必要があります。 Manticore Search の最新バージョンは、公式 Web サイト (https://manticoresearch.com/) からダウンロードできます。インストールが完了したら、インデックスを作成し、そのフィールドを構成する必要があります。以下は、インデックス構成ファイル (index.conf) の例です。

source src
{
    type            = mysql
    sql_host        = localhost
    sql_user        = username
    sql_pass        = password
    sql_db          = database
    sql_query_pre   = SET NAMES utf8
    sql_query       = SELECT id, title, content FROM documents
}

index idx
{
    source          = src
    path            = /path/to/index/
    docinfo         = extern
    morphology      = stem_en
    min_word_len    = 2
    charset_type    = utf-8
}

上記の構成は、MySQL データベースに接続し、その中のドキュメント テーブルをデータ ソースとして使用します。 usernamepassworddatabase/path/to/index/ は実際の値に置き換えられることに注意してください。

2. 基本的なファイル検索機能
次に、PHP コードを使用して Manticore Search に接続し、基本的なファイル検索機能を実行できます。以下は PHP コードの例です。

<?php
// 连接到Manticore Search
$host = 'localhost';
$port = 9306;
$index = 'idx';

$sphinx = new SphinxClient();
$sphinx->setServer($host, $port);

// 执行文件搜索
$query = 'php开发';
$result = $sphinx->query($query, $index);

// 输出搜索结果
if ($result['total_found'] > 0) {
    foreach ($result['matches'] as $match) {
        echo 'ID: ' . $match['id'] . '<br>';
        echo '标题: ' . $match['attrs']['title'] . '<br>';
        echo '内容: ' . $match['attrs']['content'] . '<br><br>';
    }
} else {
    echo '没有找到匹配的文件。';
}
?>

上記のコードでは、最初に SphinxClient インスタンスが作成され、Manticore Search に接続されるアドレスとポートが設定されます。次に、キーワード検索が実行され、結果が $result 変数に保存されます。最後に、ループを通じて検索結果が出力されます。

3. 高度なファイル検索機能
基本的なキーワード検索に加えて、Manticore Search は並べ替え、フィルタリング、強調表示などのより高度なファイル検索機能もサポートしています。サンプルコードは次のとおりです。

  1. #ファイル検索結果の並べ替え

    // 按文件标题排序搜索结果
    $sphinx->setSortMode(SPH_SORT_EXTENDED, 'title ASC');
    
    // 按相关性和文件标题排序搜索结果
    $sphinx->setSortMode(SPH_SORT_EXTENDED, '@relevance DESC, title ASC');

  2. #ファイル検索結果のフィルタリング
  3. // 仅搜索包含某个标签的文件
    $sphinx->setFilter('tags', [1]);
    
    // 仅搜索包含某个标签且在一定时间范围内的文件
    $sphinx->setFilter('tags', [1]);
    $sphinx->setFilterRange('timestamp', $start, $end);

  4. 検索結果を強調表示
  5. // 设置高亮显示的HTML标签和样式
    $sphinx->setOverride('html', '<span class="highlight">', '</span>');
    
    // 获取带有高亮显示的文件标题和内容
    $sphinx->setSelect('*, HIGHLIGHT(title) AS highlighted_title, HIGHLIGHT(content) AS highlighted_content');

    #上記のコードは高度なファイル検索機能のほんの一部を示しているだけですが、必要に応じてさらにカスタマイズできます。
概要:

この記事では、PHP と Manticore Search を使用してさまざまなファイル検索機能を開発する方法を紹介します。まず、Manticore Search をインストールして構成し、インデックスを作成しました。次に、PHP コードを使用して Manticore Search に接続し、基本的および高度なファイル検索機能をデモンストレーションします。この記事が、強力なファイル検索機能を迅速に開発するのに役立つことを願っています。

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

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