PHP 開発での全文検索に Sphinx を使用する方法
Sphinx は、さまざまな言語での全文検索のニーズに適した高性能の全文検索エンジンです。 PHP 開発のために、Sphinx は既存の PHP アプリケーションに簡単に統合できる API とプラグインを提供します。今回はSphinxを使って全文検索を行う方法を解説します。
Sphinx のインストールは非常に簡単で、Linux システム上でいくつかのコマンドを実行するだけです。 Ubuntu システムに Sphinx をインストールする手順は次のとおりです。
(1) APT パッケージ リストを更新します
sudo apt-get update
(2) Sphinx をインストールします
sudo apt-get install sphinxsearch
(3) Sphinx サービスの開始
sudo service sphinxsearch start
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 サービスを定義します。
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 サイトの他の関連記事を参照してください。