Sphinxは、シンプルで関連性のあるオープンソースの全文検索サーバーです。これはC++プログラミング言語で書かれており、Linuxやその他の一般的なオペレーティングシステムで動作します。このチュートリアルは、Ubuntu 16.04、14.04LTSオペレーティングシステムにSphinx全文検索サーバーをインストールして構成するのに役立ちます。
前提条件
このガイドを開始する前に、次のものが必要です。
- sudoアクセスを備えたUbuntuサーバー
- プリインストールされたMySQLサーバー
ステップ1—Sphinxをインストールする
ネイティブパッケージリポジトリにあるため、UbuntuへのSphinxのインストールは簡単です。 Ubuntuシステムにapt-getパッケージマネージャーを使用してインストールします。
sudo add-apt-repository ppa:builds / sphinxsearch-rel22 sudo apt-get update sudo apt-get install sphinxsearch
ステップ2–MySQLデータベースをインポートする
サンプルSQLファイルをデータベースにインポートしましょう。まず、MySQLサーバーにtestという名前のデータベースを作成し、その後、sphinx検索パッケージによって提供されるデータベースを復元します。
sudo mysqladmin -u root -p create test sudo mysql -u root -p test ステップ3–Sphinxを構成する
以下のようにsphinx構成を編集し、以下に示すようにMySQL接続構成を編集します。
sudo vi /etc/sphinxsearch/sphinx.conf source src1 {#データソースタイプ。必須、デフォルト値なし#既知のタイプはmysql、pgsql、mssql、xmlpipe、xmlpipe2、odbc type =mysql ########################### ########################################## ## SQL設定('mysqlの場合'および'pgsql'タイプ)########################################### ###########################SQLソースタイプのいくつかの簡単なパラメーターsql_host=localhost sql_user =root sql_pass =secret sql_db =test sql_port =3306#オプション、デフォルトは3306ステップ4–インデクサーの実行
インデクサーを実行して、データからフルテキストインデックスを作成します。インデクサーは、Sphinxの一部としての2つの主要なツールの最初のものです。これは、検索可能なデータを収集するために機能します。以下のような結果が表示されます。
sudo indexer --all Sphinx 2.2.11-id64-release(95ae9a6)Copyright(c)2001-2016、Andrew AksyonoffCopyright(c)2008-2016、Sphinx Technologies Inc(http://sphinxsearch.com)using config file'/ etc / sphinxsearch / sphinx .conf'... indexing index' test1'... collected 4 docs、0.0 MBsorted 0.0 Mhits、100.0%donetotal 4 docs、193 bytestotal 0.006 sec、30791 bytes / sec、638.16 docs / secindexing index' test1stemmed'.. ..収集された4つのドキュメント、0.0 MBsorted 0.0 Mhits、100.0%完了合計4つのドキュメント、193バイト合計0.001秒、99382バイト/秒、2059.73ドキュメント/秒スキップ非プレーンインデックス'dist1'...スキップ非プレーンインデックス'rt' .. ..合計8回の読み取り、0.000秒、0.1 kb /呼び出し平均、0.0ミリ秒/呼び出し平均合計24回の書き込み、0.000秒、0.1 kb /呼び出し平均、0.0ミリ秒/呼び出し平均ステップ5–Sphinxの起動
また、システムの起動時に自動起動するようにSphinxサーバーを構成します。以下のコマンドを使用して、STARTをyesに設定します。
sudo sed -i's / START =no / START =yes / g'/ etc / default / sphinxsearch また、初めてサービスを開始し、ステータスを確認します。
service sphinxsearch start service sphinxsearch status crontabでインデクサーを構成して、定期的に実行することもできます。以下のcrontabは1時間ごとに実行されます。
0 * * * * / usr / bin / indexer --rotate --allステップ6–Sphinxの操作
Sphinxサーバーでいくつかのクエリを実行してみましょう。まず、次のocmmandを使用してSphinxMySQLサーバーに接続します。
mysql -h0 -P9306 次に、以下のコマンドを1つずつ実行して、変更を確認します。これはあなた自身の学習のためだけです。
mysql> SELECT * FROM test1 WHERE MATCH('document'); mysql> INSERT INTO rt VALUES(1、'adding'、'sample text here'、11); mysql> INSERT INTO rt VALUES(2、'addingもう少し'、'サンプルテキストはこちら'、22); mysql> SELECT gid / 11 FROM rt WHERE MATCH(' sample')GROUP BY gid; mysql> SELECT * FROM rt ORDER BY gid DESC; mysql> SELECT *、WEIGHT( )FROM test1 WHERE MATCH('"document one" / 1'); mysql> SHOW META; mysql> SET profiling =1; mysql> SELECT * FROM test1 WHERE id IN(1,2,4); mysql> SHOW PROFILE; mysql> SELECT id、id%3 idd FROM test1 WHERE MATCH('this is | none')GROUP BY idd; mysql> SHOW PROFILE; mysql> SELECT id FROM test1 WHERE MATCH('これは良い計画ですか?'); mysql> SHOW PLAN; mysql> SELECT COUNT(*)FROM test1; mysql> CALL KEYWORDS('one two three'、'test1'); mysql> CALL KEYWORDS('one two three'、'test1'、1); mysql>表を表示;
Ubuntu