ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発での全文検索に Sphinx を使用する方法

PHP 開発での全文検索に Sphinx を使用する方法

WBOY
WBOYオリジナル
2023-06-25 09:09:271535ブラウズ

PHP 開発での全文検索に Sphinx を使用する方法

Sphinx は、さまざまな言語での全文検索のニーズに適した高性能の全文検索エンジンです。 PHP 開発のために、Sphinx は既存の PHP アプリケーションに簡単に統合できる API とプラグインを提供します。今回はSphinxを使って全文検索を行う方法を解説します。

  1. Sphinx のインストール

Sphinx のインストールは非常に簡単で、Linux システム上でいくつかのコマンドを実行するだけです。 Ubuntu システムに Sphinx をインストールする手順は次のとおりです。

(1) APT パッケージ リストを更新します

sudo apt-get update

(2) Sphinx をインストールします

sudo apt-get install sphinxsearch

(3) Sphinx サービスの開始

sudo service sphinxsearch start

  1. Sphinx の設定

Sphinx の設定ファイルは /etc/sphinxsearch/sphinx.conf です。このファイルでは、Sphinx のグローバル設定とインデックスを定義できます。以下は、MySQL から Sphinx にデータのインデックスを作成するためのサンプル構成ファイルです:

source src1
{
type = mysql

sql_host = localhost
sql_user = username
sql_pass = パスワード
sql_db = dbname
sql_port = 3306 # オプション、デフォルトは3306です

sql_query =

SELECT id, title, content 
FROM article

sql_attr_uint = category_id
}

インデックス my_index
{
ソース = src1
パス = /var/lib/sphinxsearch/data/my_index
docinfo = extern
charset_type = utf-8

形態 = Stem_en

min_prefix_len = 3
min_infix_len = 1
}

searchd
{
listen = 127.0.0.1:9312
log = /var /log/ sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinxsearch/searchd.pid
max_matches = 1000
}

この構成ファイルでは、src1 という名前のデータ ソースを定義し、MySQL データベースに接続し、そこから取得するフィールドを定義します。次に、my_index という名前のインデックスを定義して、指定されたパスへの src1 ソースのインデックスを作成しました。最後に、ポート 9312 でリッスンし、クエリ ログをオンにする searchd サービスを定義します。

  1. PHP を使用した Sphinx への接続

PHP で Sphinx に接続するのは非常に簡単です。 Sphinx の PHP 拡張機能を使用できます。これは、検索を実行するための一連の関数を提供します。以下は、全文検索のために Sphinx に接続するための PHP コードの例です。

//Sphinx に接続
$cl = new SphinxClient();
$cl->setServer( "localhost", 9312 );

//検索結果
$keywords = "Sphinx";
$result = $cl->Query($keywords, "my_index");

/ /出力結果
foreach ($result['matches'] as $doc => $match) {
echo "ドキュメントid={$doc},weight={$match[' weight']}, attr={$match'attrs'}
";
}

この例では、まず SphinxClient オブジェクトをインスタンス化し、Sphinx サーバーのホストとポートを指定します。次に、検索するクエリ キーワードと検索するインデックス名を指定して、検索を実行します。最後に、結果をループして、一致するドキュメント ID、重み、および属性を出力します。

概要

Sphinx は、PHP アプリケーションに簡単に統合できる強力な全文検索エンジンです。 Sphinx を使用すると、大量のテキスト文書を迅速に検索し、効率的かつ正確な検索結果を得ることができます。この記事がお役に立ち、PHP 開発での全文検索に Sphinx を使用する方法をよりよく理解していただければ幸いです。

以上がPHP 開発での全文検索に Sphinx を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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