Dieses Plugin bietet die folgenden Funktionen:
Wenn Sie MySQL oder Mariadb verwenden, benötigen Sie Mroonga 9.03 oder höher.
Wenn Sie Postgresql verwenden, benötigen Sie PGroonga 2.2.0 oder höher.
Mroonga und Pgroonga verwenden Groonga als Volltext -Suchmaschine. Sie brauchen Groonga 9.0.3 oder höher.
Siehe PGROONGA -Dokument
Siehe Mroonga -Dokument
Sie können einen von ihnen auswählen, um Chupatext zu installieren:
Chupa-Text-Docker wird empfohlen. Siehe Chupa-Text-Docker-Dokument, um Chupa-Text-Docker zu installieren.
Siehe Chupa-Text-Vagrant-Dokument, um chupa-text-vagrant zu installieren.
CHUPA-Text-HTTP-Server ist ein normaler Rubin auf Rails-Anwendung wie Redmine selbst. Sie können chupa-text-http-server als normale Ruby on Rails-Anwendung bereitstellen.
$ 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:migrateStarten Sie Redmine neu.
Hinweis für pGroonga:
Wenn Sie den normalen Benutzer für Redmine verwenden. Sie müssen RAILS_ENV=production bin/rails redmine:plugins:migrate folgende Abfrage als Superbenutzer ausführen
CREATE EXTENSION IF NOT EXISTS pgroonga; Öffnen Sie https: // your_redmine_server/settings/plugin/full_text_search und konfigurieren Sie Elemente auf der Seite. Wenn Sie den Chupatext -Server installieren, müssen Sie "Chupatext Server -URL" konfigurieren. Wenn Sie Ihren Chupatext-Server durch Chupa-Text-Docker oder Chupa-Text-Vagrant auf demselben Host installieren, handelt es sich um http://127.0.0.1:20080/extraction.json .
Sie müssen Index für vorhandene Daten erstellen. Sie müssen full_text_search:synchronize , bis die Zieldaten nicht mehr synchronisieren.
$ 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
...Dieses Plugin unterstützt die Abfrageerweiterung. Sie können diese Funktion verwenden, um die Synonymsuche zu implementieren.
Sie können die Liste der Abfragenerweiterung nach Web -Benutzeroberfläche auf der Administrationsseite oder der Datendatei Administrate.
Sie können das folgende Format für die Datendatei verwenden:
Wenn Sie CSV verwenden, verwenden Sie das folgende Format:
SOURCE1,DESTINATION1
SOURCE2,DESTINATION2
...
Beispiel:
MySQL,MySQL
MySQL,MariaDB
MariaDB,MySQL
MariaDB,MariaDB
Wenn Sie JSON verwenden, verwenden Sie eines der folgenden Formate:
[
[ " SOURCE1 " , " DESTINATION1 " ],
[ " SOURCE2 " , " DESTINATION2 " ],
...
][
{ "source" : " SOURCE1 " , "destination" : " DESTINATION1 " },
{ "source" : " SOURCE2 " , "destination" : " DESTINATION2 " },
...
]Beispiele:
[
[ " MySQL " , " MySQL " ],
[ " MySQL " , " MariaDB " ],
[ " MariaDB " , " MySQL " ],
[ " MariaDB " , " MariaDB " ]
][
{ "source" : " MySQL " , "destination" : " MySQL " },
{ "source" : " MySQL " , "destination" : " MariaDB " },
{ "source" : " MariaDB " , "destination" : " MySQL " },
{ "source" : " MariaDB " , "destination" : " MariaDB " }
]Sie können die Liste der Abfragenerweiterung mit der Datendatei mit dem folgenden Befehl synchronisieren:
$ cd redmine
$ RAILS_ENV=production bin/rails full_text_search:query_expansion:synchronize INPUT=query-expansion.csvSie können die aktuelle Abfrageerweiterungsliste auf der Administrationsseite bestätigen.
Mroonga ist nicht sicher. Wenn MySQL beim Aktualisieren von Daten in Mroonga abgestürzt ist, können Mroonga -Daten möglicherweise unterbrochen werden.
Hier finden Sie die Anweisung, sich von kaputten Mroonga -Daten wiederherzustellen.
Wenn Sie Redmine Plugin Delyd Job verwenden, müssen Sie die Arbeiter anhalten und Jobs für dieses Plugin löschen:
$ sudo -H systemctl stop [email protected]
$ cd redmine
$ RAILS_ENV=production bin/rails runner ' Delayed::Job.where(queue: "full_text_search").delete_all 'Stoppen Sie MySQL:
$ sudo -H systemctl stop mysqldEntfernen Sie Mroonga -verwandte Dateien:
$ 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* "Starten Sie MySQL:
$ sudo -H systemctl start mysqldÜberprüfen Sie, ob Mroonga basierend auf dem Mroonga -Handbuch ordnungsgemäß installiert wurde. Wenn Mroonga nicht installiert ist, installieren Sie Mroonga wie folgt:
$ mysql -u root -p < /usr/share/mroonga/install.sqlZerstörungstische für dieses Plugin ausdrücklich:
$ 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 ;Schema für dieses Plugin neu erstellen:
$ 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_searchWenn Sie Redmine Plugin Delyd Job verwenden, müssen Sie die Mitarbeiter starten:
$ sudo -H systemctl start [email protected]Synchronisieren:
$ cd redmine
$ RAILS_ENV=production bin/rails full_text_search:synchronize UPSERT=later Hier sind einige nützliche Tools zur Vorbereitung:
dev/run-mysql.sh und dev/run-postgresql.sh : Ausführen neuer RDBMS-Instanz von Docker.dev/initialize-redmine.sh : Redmine initialisieren.dev/run-test.sh : Führen Sie Tests für das Volltext-Such-Plugin aus.Klonquellencodes. Dies ist nur einmal erforderlich.
$ 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 Sie können Plugins mehr plugins/ .
Wählen Sie eine geeignete Datenbankkonfiguration:
$ ln -fs ../plugins/full_text_search/config/database.yml.example. ${REDMINE_VERSION} . ${RDBMS} config/database.ymlHier ist ein Beispiel für die Verwendung von Redmine 5.0 und MySQL:
$ ln -fs ../plugins/full_text_search/config/database.yml.example.5.0.mysql config/database.ymlRDBMS ausführen.
Für MySQL:
$ plugins/full_text_search/dev/run-mysql.sh /tmp/mysqlFür PostgreSQL:
$ plugins/full_text_search/dev/run-postgresql.sh /tmp/postgresqlRedmine initialisieren:
$ plugins/full_text_search/dev/initialize-redmine.shTests ausführen:
$ plugins/full_text_search/dev/run-test.sh Sie müssen Mapper -Klassen für jedes Suchziel erstellen. Weitere Informationen finden Sie unter lib/full_text_search/*_mapper.rb .
Sie müssen require_dependency "full_text_search/XXX_mapper zu init.rb hinzufügen, um diese neuen Mapper -Klassen zu laden.
Sie können Ihre Änderungen auf übliche Redmine -Entwicklungswege bestätigen.
Zum Beispiel finden Sie hier eine Befehlszeile, um Redmine auszuführen:
$ bin/rails serverSie müssen den folgenden Dateien Tests hinzufügen:
test/unit/full_text_search/XXX_test.rbtest/functional/full_text_search/search_controller_test.rbHier ist eine Befehlszeile zum Ausführen von Tests:
$ plugins/full_text_search/dev/run-test.sh Sie können Testoptionen nach TESTOPTS angeben:
$ plugins/full_text_search/dev/run-test.sh TESTOPTS= " -n/test_XXX/ " Sie können alle Testoptionen von TESTOPTS=--help sehen:
$ plugins/full_text_search/dev/run-test.sh TESTOPTS=--help Kenji Okimoto
Sutou Kouhei <[email protected]>
Shimadzu Corporation
Die MIT -Lizenz. Weitere Informationen finden Sie in Lizenz.
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 )