このプラグインは次の機能を提供します。
MySQLまたはMariadBを使用している場合は、MROONGA 9.03以降が必要です。
PostgreSQLを使用している場合は、PGROONGA 2.2.0以降が必要です。
MroogaとPgroogaは、Groogaをフルテキスト検索エンジンとして使用しています。 9.0.3以降が必要です。
pgroogaドキュメントを参照してください
Mrooga Documentを参照してください
それらのいずれかを選択して、chupatextをインストールできます。
Chupa-Text-Dockerをお勧めします。 Chupa-Text-dockerをインストールするには、Chupa-Text-Dockerドキュメントを参照してください。
Chupa-Text-Vagrantをインストールするには、Chupa-Text-Vagrantドキュメントを参照してください。
Chupa-text-http-serverは、Redmine自体のような通常のRuby on Railsアプリケーションです。 chupa-text-http-serverを通常のRuby on Railsアプリケーションとして展開できます。
$ cd redmine
$ git clone https://github.com/clear-code/redmine_full_text_search.git plugins/full_text_search
$ bundle install
$ RAILS_ENV=production bin/rails redmine:plugins:migrateRedmineを再起動します。
PGROONGAについてのメモ:
redmineに通常のユーザーを使用する場合。 RAILS_ENV=production bin/rails redmine:plugins:migrate移行する前に、スーパーユーザーとして次のクエリを実行する必要があります:
CREATE EXTENSION IF NOT EXISTS pgroonga;https:// your_redmine_server/settings/plugin/full_text_searchを開き、ページ内のアイテムを構成します。 chupatextサーバーをインストールする場合は、「chupatext server url」を構成する必要があります。 Chupa-Text-DockerまたはChupa-Text-Vagrantによって同じホストにChupatextサーバーをインストールすると、 http://127.0.0.1:20080/extraction.json 20080/extraction.jsonです。
既存のデータのインデックスを作成する必要があります。 full_text_search:synchronize必要があります。
$ cd redmine
$ RAILS_ENV=production bin/rails full_text_search:synchronize
$ RAILS_ENV=production bin/rails full_text_search:synchronize
$ RAILS_ENV=production bin/rails full_text_search:synchronize
...このプラグインは、クエリの拡張をサポートしています。この機能を使用して、同義語検索を実装できます。
管理ページまたはデータファイルでWeb UIごとにクエリ拡張リストを管理できます。
データファイルに次の形式を使用できます。
CSVを使用する場合は、次の形式を使用します。
SOURCE1,DESTINATION1
SOURCE2,DESTINATION2
...
例:
MySQL,MySQL
MySQL,MariaDB
MariaDB,MySQL
MariaDB,MariaDB
JSONを使用する場合は、次の形式のいずれかを使用します。
[
[ " SOURCE1 " , " DESTINATION1 " ],
[ " SOURCE2 " , " DESTINATION2 " ],
...
][
{ "source" : " SOURCE1 " , "destination" : " DESTINATION1 " },
{ "source" : " SOURCE2 " , "destination" : " DESTINATION2 " },
...
]例:
[
[ " MySQL " , " MySQL " ],
[ " MySQL " , " MariaDB " ],
[ " MariaDB " , " MySQL " ],
[ " MariaDB " , " MariaDB " ]
][
{ "source" : " MySQL " , "destination" : " MySQL " },
{ "source" : " MySQL " , "destination" : " MariaDB " },
{ "source" : " MariaDB " , "destination" : " MySQL " },
{ "source" : " MariaDB " , "destination" : " MariaDB " }
]次のコマンドで、クエリ拡張リストをデータファイルと同期させることができます。
$ cd redmine
$ RAILS_ENV=production bin/rails full_text_search:query_expansion:synchronize INPUT=query-expansion.csv管理ページの現在のクエリ拡張リストを確認できます。
ムルオンガは安全ではありません。 MROONGAのデータの更新中にMySQLがクラッシュした場合、MROONGAデータが壊れる可能性があります。
壊れたムルオンガデータから回復するための指示は次のとおりです。
Redmineプラグインの遅延ジョブを使用している場合、このプラグインの労働者を停止し、ジョブを削除する必要があります。
$ sudo -H systemctl stop [email protected]
$ cd redmine
$ RAILS_ENV=production bin/rails runner ' Delayed::Job.where(queue: "full_text_search").delete_all 'mysqlを停止:
$ sudo -H systemctl stop mysqldMROONGA関連ファイルを削除します:
$ cd redmine
$ database_name= $( RAILS_ENV=production bin/rails runner ' puts ActiveRecord::Base.configurations[Rails.env]["database"] ' )
$ sudo -H sh -c " rm -rf /var/lib/mysql/ ${database_name} .mrn* "MySQLを開始:
$ sudo -H systemctl start mysqldMroogaマニュアルに基づいてMroogaが適切にインストールされていることを確認してください。ムロンガがインストールされていない場合は、次のようにmroogaをインストールします。
$ mysql -u root -p < /usr/share/mroonga/install.sqlこのプラグインのテーブルを明示的に破壊します。
$ mysql -u root -p ${database_name}
> DROP TABLE IF EXISTS fts_query_expansions ;
> DROP TABLE IF EXISTS fts_targets ;
> DROP TABLE IF EXISTS fts_tags ;
> DROP TABLE IF EXISTS fts_tag_types ;
> DROP TABLE IF EXISTS fts_types ;このプラグインのスキーマを再作成します。
$ cd redmine
$ RAILS_ENV=production bin/rails redmine:plugins:migrate NAME=full_text_search VERSION=0
$ RAILS_ENV=production bin/rails redmine:plugins:migrate NAME=full_text_searchRedmineプラグインの遅延ジョブを使用している場合は、労働者を開始する必要があります。
$ sudo -H systemctl start [email protected]同期:
$ cd redmine
$ RAILS_ENV=production bin/rails full_text_search:synchronize UPSERT=later 準備に役立つツールをいくつか紹介します。
dev/run-mysql.shおよびdev/run-postgresql.sh :dockerによる新しいrdbmsインスタンスを実行します。dev/initialize-redmine.sh :redmineを初期化します。dev/run-test.sh :全文検索プラグインのテストを実行します。クローンソースコード。これは一度だけ必要です。
$ git clone https://github.com/redmine/redmine.git
$ cd redmine
$ git checkout 5.0-stable # or something
$ git clone [email protected]: ${YOUR_FORK} /redmine_full_text_search.git plugins/full_text_search plugins/にプラグインを追加できます。
適切なデータベース構成を選択します。
$ ln -fs ../plugins/full_text_search/config/database.yml.example. ${REDMINE_VERSION} . ${RDBMS} config/database.ymlRedmine 5.0とMySQLを使用する例は次のとおりです。
$ ln -fs ../plugins/full_text_search/config/database.yml.example.5.0.mysql config/database.ymlRDBMSを実行します。
mysqlの場合:
$ plugins/full_text_search/dev/run-mysql.sh /tmp/mysqlpostgresqlの場合:
$ plugins/full_text_search/dev/run-postgresql.sh /tmp/postgresqlRedmineを初期化:
$ plugins/full_text_search/dev/initialize-redmine.shテストの実行:
$ plugins/full_text_search/dev/run-test.sh検索ターゲットごとにマッパークラスを作成する必要があります。詳細についてはlib/full_text_search/*_mapper.rb参照してください。
require_dependency "full_text_search/XXX_mapperをinit.rbに追加する必要があります。これらの新しいマッパークラスをロードします。
通常のRedmine開発方法で変更を確認できます。
たとえば、Redmineを実行するコマンドラインは次のとおりです。
$ bin/rails server次のファイルにテストを追加する必要があります。
test/unit/full_text_search/XXX_test.rbtest/functional/full_text_search/search_controller_test.rbこれがテストを実行するコマンドラインです:
$ plugins/full_text_search/dev/run-test.sh TESTOPTSによってテストオプションを指定できます。
$ plugins/full_text_search/dev/run-test.sh TESTOPTS= " -n/test_XXX/ " TESTOPTS=--helpですべてのテストオプションを見ることができます:
$ plugins/full_text_search/dev/run-test.sh TESTOPTS=--help 沖kenji
sutou kouhei <[email protected]>
清水公社
MITライセンス。詳細については、ライセンスを参照してください。
asserts/stylesheets/fontawesome*/**/*asserts/stylesheets/fontawesome*/LICENSE.txt参照してくださいgit checkout -b my-new-feature )git commit -am 'Add some feature' )git push origin my-new-feature )