自分の映画 Web サイトのリソースが徐々に増加するにつれて、映画リソース検索サービスを追加することが避けられなくなりました。データベース検索を直接操作すると、IO ポート要求が増加し、検索パフォーマンスが低下します。前回のプロジェクトで sphinx を使用する基礎があり、中国語の検索サービスのサポートに加えて、最終的に sphinx ベースの Coreseek 検索サービスを使用することにしました。
ダウンロードとインストールの手順 [Linux 環境でバージョン 4.1 を使用しており、システムは mysql および xml データ ソースをサポートしています]:
coreseek ダウンロード アドレス、coreseek-4.1-beta.tar.gz パッケージをダウンロード
解凍gz パッケージ、tar zxvf coreseek-4.1-beta.tar.gz
mmseg [中国語単語セグメンテーション パッケージ] をコンパイルしてインストールします
./bootstrap
./configure --prefix=/usr /local/mmseg3
+ usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr /local/mmseg3/lib / --with-mysql #with-mmseg-libs は mmseg 中国語単語セグメンテーション パスです映画 Web サイトの更新サイクルは比較的長く、sphinx はインデックス作成にはメイン インデックス + 増分インデックスの方法を使用し、最後に 2 つのインデックス ファイルをマージします。ここで、独自の検索構成ファイルのデプロイを開始します:
coreseek インストール ディレクトリに etc ファイルを入力し、.conf 構成ファイルを作成または変更します
ソース ソースを構成します
sql_user = root #mysql user
sql_pass = localhost #mysql ユーザーパスワードsql_query_pre =セット名 utf8
sql_query = SELECT id, UNIX_TIMESTAMP(cdate) AS date ,id AS movie_id ,name, year, type,status,sync_status FROM movie WHERE id<= ( SELECT max_movie_id From Movie_SPH_COUNTER where counter_id = 1)
SQL_UINT = Year
SQL_UINT = TYPE
SQL_ATTR_UINT = Date
SQL_ATTR_UINT = Status
SQL_ATTR_UINT = _STATUS
SQL_FIELD_STRING = NAME
SQL_INFO_PRE = SET NAMES UTF8 # コマンドラインでクエリを実行する場合は、正しい文字セットを設定します
sql_query_info = SELECT * FROM movie WHERE id=$id # コマンドラインでクエリを実行する場合は、データベースから元のデータ情報を読み取ります
}
#Incrementalインデックス ソース
ソース デルタ: 映画
sql_query_pre = SET NAMES utf8
sql_query = SELECT id, UNIX_TIMESTAMP(cdate) AS date ,id AS movie_id ,name , year, type ,status,sync_status FROM movie WHERE id>( SELECT max_movie_id FROM movie_sph_counter counter_id=1 )
sql_query_post_index = REPLACE INTO movie_sph_counter SELECT 1, MAX(id) FROM movie
}
構成インデックス
I #
{
Source = Movie #対応するソース名
PATH =/usr/Local/Coreseek/VAR/Movie #実際に使用する絶対パスは/usr /localのように変更してください/coreseek/var/...
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
#中国語単語セグメンテーション設定、詳細については、http://www.coreseek.cn を確認してください。 /products-install/coreseek_mmseg/
charset_dictpath = /usr/local/mmseg/etc/ #BSD および Linux 環境で設定し、/ シンボルで終わる mmseg パス
charset_type = zh_cn.utf-8 #中国語エンコーディング
}
indexデルタ : movie
{
ソース = デルタ
パス = /usr/local/coreseek/var/data/movie_delta #注意! !メインインデックスパスと同じ名前を使用しないでください。 docinfo = extern mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
_dictpath = /usr/local/mmseg/etc/
charset_type = zh_cn.utf-8
}
検索サービスを設定します
#searchd サービス定義
searchd max_children = 30
max_matches = 1000
シームレス回転= 0
preopen_indexes = 0
unlink_old = 1
compat_sphinxql_magics=0
pid_file = /usr/local/coreseek/var/log/searchd_mysql.pid #実際の絶対パスに変更してください (例: /usr/local/core) Seek/var/ ...
log = /usr/local/coreseek/var/log/searchd_mysql.log #実際の絶対パスに変更してください。例: /usr/local/coreseek/var/...
query_log = /usr/ local/coreseek/var/log/query_mysql.log #実際の絶対パスに変更してください。例: /usr/local/coreseek/var/...
Binlog_path = #binlog ログを閉じる
}
インデックスを作成するコマンドを実行します: /usr/local/coreseek/bin/indexer -c movie.conf --all
ここでシェアしますので、皆さんのお役に立てれば幸いです