ホームページ > バックエンド開発 > PHPチュートリアル > Sphinx のインストールと構成アプリケーション、Sphinx のインストールと構成_PHP チュートリアル

Sphinx のインストールと構成アプリケーション、Sphinx のインストールと構成_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:51:45
オリジナル
1037 人が閲覧しました

Sphinx のインストールと構成アプリケーション、Sphinx のインストールと構成

Sphinx は、ロシアの Andrew Aksyonoff によって開発された全文検索エンジンです。高速かつ省スペースで、結果に関連性の高い全文検索機能を他のアプリケーションに提供することを目的としています。 Sphinx は、SQL データベースやスクリプト言語と簡単に統合できます。現在のシステムに組み込まれている MysqL および PostgreSQL データベース データ ソースのサポートでは、標準入力からの特定の形式の XML データの読み取りもサポートされています。ソースコードを変更することで、新しいデータソースを追加できます (例: 他のタイプの DBMS のネイティブサポート)

1. スフィンクスの中国語単語の分割

中国語の全文検索はセマンティック セグメンテーションに基づいています。現在、ほとんどのデータベースは Mysql などの中国語の全文検索をサポートしていません。 Sphinx が中国語の全文検索を実行する必要がある場合は、coreseek や sfc など、それを補うプラグインも必要になります。

  • Coreseek は、Sphinx 用に設計された中国語単語分割パッケージ LibMMSeg を提供する、最も一般的に使用される Sphinx 中国語全文検索です。また、Windows 上の rpm、deb、バイナリ パッケージなど、複数のシステム用のバイナリ配布バージョンも提供します。
  • sfc (sphinx-for-chinese) は、ネチズンの Happy Brother が提供する別の中国語単語分割プラグインです。中国語辞書は xdict を使用します。同氏によると、テストの結果、現在のバージョンは基本的に、インデックス作成速度 (Linux テスト プラットフォーム) の点で、UTF-8 英語のインデックス作成速度の半分に達することができますが、これは公式に主張されている速度の半分です。 (主に単語の分割に時間がかかります)。

2. インストール

Sphinx は 2 つの方法で mysql に適用できます:
(1) API 呼び出しを使用する。たとえば、PHP、Java などの API 関数またはメソッドを使用してクエリを実行します。利点は、MySQL を再コンパイルする必要がなく、サーバー プロセスが「低結合」であり、プログラムを柔軟かつ便利に呼び出すことができることです。欠点は、検索プログラムが既に存在する場合、一部のプログラムを変更する必要があることです。プログラマーにお勧めします。
(2) プラグイン メソッド (sphinxSE) を使用して sphinx を mysql プラグインにコンパイルし、特定の SQL ステートメントを使用して取得します。 SQL側での結合が容易で、プログラム内では該当するSQLのみを修正するだけで、2回目のクエリ(注)を必要とせずに直接クライアントにデータを返すことができるのが特徴ですが、これは非常に不便です。たとえば、ORM を使用して開発されたプログラム。さらに、mysql を再コンパイルする必要があり、mysql-5.1 以降でプラグイン ストレージをサポートする必要があります。システム管理者はこの方法を使用できます。

最初の方法を使用してインストールします:

ソフトウェア環境:

  • オペレーティングシステム: Centos-5.2
  • データベース: mysql-5.0.77-3.el5 mysql-devel (sphinxSE プラグインストレージを使用したい場合は、mysql-5.1 以降を使用してください)
  • コンパイルソフト: gcc gcc-c++ autoconf automake
  • Sphinx: Sphinx-0.9.9 (最新の安定バージョン)

インストール:

  • [root@localhost ~]# yum install -y mysql mysql-devel
  • [root@localhost ~]# yum install -y automake autoconf
  • [root@localhost ~]# cd /usr/local/src/
  • [root@localhost src]# wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
  • [root@localhost src]# tar zxvf sphinx-0.9.9.tar.gz
  • [root@localhost local]# cd sphinx-0.9.9
  • [root@localhost sphinx-0.9.9]# ./configure –prefix=/usr/local/sphinx #注意: ここのスフィンクスはデフォルトですでに mysql をサポートしています
  • [root@localhost sphinx-0.9.9]# make && make install # 「警告」は無視できます

インストールが完了したら、/usr/local/sphinx に bin など var という 3 つのディレクトリがあるかどうかを確認してください。そうであれば、インストールは正しく行われています。

SFCインストール

coreseekインストール

3. 構成

  • [root@localhost ~]#cd /usr/local/sphinx/etc #sphinx設定ファイルのディレクトリに入る
  • [root@localhost など]# cp sphinx.conf.dist sphinx.conf #新しい Sphinx 設定ファイル
  • [root@localhost など]# vim sphinx.conf #sphinx.conf を編集

特定のインスタンス構成ファイル:

##### インデックスソース ###########
ソース記事_src
{
type = mysql #####データソースタイプ
sql_host = 192.168.1.10 ######mysqlhost
sql_user = root ########mysql ユーザー名
sql_pass = pwd############mysql パスワード
sql_db = テスト #########mysql データベース名
sql_port= 3306 ###########mysql ポート
sql_query_pre = SET NAMES UTF8 ###mysql 検索エンコーディング、この点に特に注意してください。データベースのエンコーディングが GBK またはその他の非 UTF8 であるため、多くの人は中国語で検索できません
sql_query = SELECT id,title,cat_id,member_id,content,created FROM sphinx_article ####### データ取得 SQL

#####以下はフィルタリングまたは条件付きクエリに使用される属性です########

sql_attr_uint = cat_id ######## 符号なし整数属性
sql_attr_uint = メンバーID
sql_attr_timestamp = 作成された ############ UNIX タイムスタンプ属性

sql_query_info = select * from sphinx_article where id=$id ######### コマンド インターフェイス (CLI) 呼び出しのテスト用

}

### インデックス ###

インデックス記事
{
source =article_src ####インデックスのソースを宣言します
path = /usr/local/sphinx/var/data/article #######インデックスファイルの保存パスとインデックスファイル名
docinfo = extern ##### 文書情報の保存方法
mlock = 0 ###キャッシュデータメモリロック
形態学 = なし #### 形態学 (中国語には無効)
min_word_len = 1 #### インデックス付き単語の最小長
charset_type = utf-8 #####データエンコーディング

##### 文字テーブル、注: この方法を使用すると、スフィンクスは中国語の文字をセグメント化します。 ##### つまり、単語のインデックス作成を実行する必要があります。中国語の単語分割を使用したい場合は、coreseek や sfc
などの他の単語分割プラグインを使用する必要があります。

charset_table = U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A-> ;a..z

}

######### インデクサー構成 #####

インデクサー
{
mem_limit = 256M ####### メモリ制限
}

############ スフィンクス サービス プロセス ########

検索しました
{
#listen = 9312 ### このバージョンから、公式 9312 ポートが IANA によって正式に承認されました。以前のバージョンのデフォルトは 3312
でした。

log = /usr/local/sphinx/var/log/searchd.log #### サービス プロセス ログ。Sphinx で例外が発生すると、基本的にはここから有効な情報をクエリできます。答えが見つかりました

query_log = /usr/local/sphinx/var/log/query.log ### クライアント クエリ ログ、作成者注: いくつかのキーワードをカウントしたい場合は、このログ ファイルを分析できます
read_timeout = 5 ## リクエストのタイムアウト
max_children = 30 ### 同時に実行できるsearchdプロセスの最大数
pid_file = /usr/local/sphinx/var/log/searchd.pid #######プロセス ID ファイル
max_matches = 1000 ### 返されるクエリ結果の最大数
Seamless_rotate = 1 ### シームレスな切り替えをサポートするかどうか。通常、増分インデックスを作成するときに必要です
}

4. インデックスを作成する

[root@localhost sphinx]# bin/indexer -c etc/sphinx.confarticle ### インデックスファイルを作成するコマンド

Sphinx 0.9.9-リリース (r2117)
著作権 (c) 2001-2009、アンドリュー・アクショーノフ

設定ファイル「etc/sphinx.conf」を使用…

インデックス「記事」のインデックス作成…
1000 個のドキュメントを収集、0.2 MB
0.4 M ヒットをソート、99.6% 完了
合計 1000 ドキュメント、210559 バイト
合計 3.585 秒、58723 バイト/秒、278.89 ドキュメント/秒
合計 2 回の読み取り、0.031 秒、1428.8 kb/コール平均、15.6 ミリ秒/コール平均
合計 11 回の書き込み、0.032 秒、671.6 kb/コール平均、2.9 ミリ秒/コール平均

5. アプリケーション

前のステップでインデックスを確立しました。今度は新しく作成したインデックスをテストします。テストには 2 つの方法があります: CLI と API 呼び出し

(1) CLI 側のコマンド テストは、sphinx に付属の search コマンドを使用します: search

[root@localhost sphinx]# bin/search -c etc/sphinx.conf Liu Li

Sphinx 0.9.9-リリース (r2117)
著作権 (c) 2001-2009、アンドリュー・アクショーノフ

設定ファイル「etc/sphinx.conf」を使用…

インデックス 'mdmLoginLog': クエリ 'Liu Li ': 0.000 秒以内に合計 6 件中 6 件の一致が返されました

一致の表示:

1、weight=2
2、document=3、weight=2
4、document=2
5。 、ウェイト=2
6、ドキュメント=8、ウェイト=2

単語:

1.「劉」: 6 件のドキュメント、6 件のヒット

2.「利」: 6 件のドキュメント、6 件のヒット

(2) PHP の API を使用してテストします。テストする前に、Sphinx サービス プロセスを開始し、centos ファイアウォールのポート 9312 を開きます

[root@localhost sphinx]# bin/searchd -c etc/sphinx.conf & ### Sphinxをバックグラウンドで実行する

[1] 5759

[root@localhost sphinx]# Sphinx 0.9.9-リリース (r2117)
著作権 (c) 2001-2009、アンドリュー・アクショーノフ

設定ファイル「etc/sphinx.conf」を使用…

すべてのインターフェースでリッスン、ポート=9312


[1]+ 完了 bin/searchd -c etc/sphinx.conf

参考 http://www.sphinxsearch.org/sphinx-tutorial

http://www.bkjia.com/PHPjc/1128121.html

tru​​ehttp://www.bkjia.com/PHPjc/1128121.html技術記事 Sphinx のインストールと構成アプリケーション、Sphinx のインストールと構成 Sphinx は、ロシアの Andrew Aksyonoff によって開発された全文検索エンジンです。他のアプリケーションに高速、スペース占有、および高いノード密度を提供することを目的としています...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート