Plugin ini menyediakan fitur berikut:
Jika Anda menggunakan MySQL atau MariaDB, Anda memerlukan Mroonga 9.03 atau lebih baru.
Jika Anda menggunakan PostgreSQL, Anda memerlukan pgroonga 2.2.0 atau lebih baru.
Mroonga dan Pgroonga menggunakan Groonga sebagai mesin pencari teks lengkap. Anda membutuhkan Groonga 9.0.3 atau lebih baru.
Lihat Dokumen Pgroonga
Lihat dokumen Mroonga
Anda dapat memilih salah satunya untuk menginstal Chupatext:
Direkomendasikan Chupa-Text-Docker. Lihat dokumen Chupa-Text-Docker untuk menginstal Chupa-Text-Docker.
Lihat Dokumen Chupa-Text-Vagrant untuk menginstal chupa-text-vagrant.
Chupa-text-http-server adalah ruby normal pada aplikasi rel seperti redmine itu sendiri. Anda dapat menggunakan chupa-text-http-server sebagai ruby normal pada aplikasi rel.
$ 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:migrateRestart Redmine.
Catatan untuk pgroonga:
Jika Anda menggunakan pengguna normal untuk RedMine. Anda harus menjalankan kueri berikut sebagai pengguna super sebelum menjalankan RAILS_ENV=production bin/rails redmine:plugins:migrate :
CREATE EXTENSION IF NOT EXISTS pgroonga; Buka https: // your_redmine_server/pengaturan/plugin/full_text_search dan konfigurasikan item di halaman. Jika Anda menginstal server Chupatext, Anda harus mengkonfigurasi "URL Server Chupatext". Jika Anda menginstal server chupatext Anda oleh chupa-text-docker atau chupa-text-vagrant pada host yang sama, itu http://127.0.0.1:20080/extraction.json .
Anda perlu membuat indeks untuk data yang ada. Anda perlu menjalankan full_text_search:synchronize tugas sampai tidak ada lagi sinkronisasi data target.
$ 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
...Plugin ini mendukung ekspansi kueri. Anda dapat menggunakan fitur ini untuk mengimplementasikan pencarian sinonim.
Anda dapat memberikan daftar ekspansi kueri berdasarkan UI Web di halaman administrasi atau file data.
Anda dapat menggunakan format berikut untuk file data:
Jika Anda menggunakan CSV, gunakan format berikut:
SOURCE1,DESTINATION1
SOURCE2,DESTINATION2
...
Contoh:
MySQL,MySQL
MySQL,MariaDB
MariaDB,MySQL
MariaDB,MariaDB
Jika Anda menggunakan JSON, gunakan salah satu format berikut:
[
[ " SOURCE1 " , " DESTINATION1 " ],
[ " SOURCE2 " , " DESTINATION2 " ],
...
][
{ "source" : " SOURCE1 " , "destination" : " DESTINATION1 " },
{ "source" : " SOURCE2 " , "destination" : " DESTINATION2 " },
...
]Contoh:
[
[ " MySQL " , " MySQL " ],
[ " MySQL " , " MariaDB " ],
[ " MariaDB " , " MySQL " ],
[ " MariaDB " , " MariaDB " ]
][
{ "source" : " MySQL " , "destination" : " MySQL " },
{ "source" : " MySQL " , "destination" : " MariaDB " },
{ "source" : " MariaDB " , "destination" : " MySQL " },
{ "source" : " MariaDB " , "destination" : " MariaDB " }
]Anda dapat menyinkronkan daftar ekspansi kueri dengan file data dengan perintah berikut:
$ cd redmine
$ RAILS_ENV=production bin/rails full_text_search:query_expansion:synchronize INPUT=query-expansion.csvAnda dapat mengonfirmasi daftar ekspansi kueri saat ini di halaman administrasi.
Mroonga tidak aman. Jika MySQL macet saat memperbarui data di Mroonga, data Mroonga mungkin rusak.
Berikut adalah instruksi untuk pulih dari data Mroonga yang rusak.
Jika Anda menggunakan pekerjaan tertunda plugin RedMine, Anda perlu menghentikan pekerja dan menghapus pekerjaan untuk plugin ini:
$ sudo -H systemctl stop [email protected]
$ cd redmine
$ RAILS_ENV=production bin/rails runner ' Delayed::Job.where(queue: "full_text_search").delete_all 'Hentikan mysql:
$ sudo -H systemctl stop mysqldHapus file terkait Mroonga:
$ 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* "Mulai mysql:
$ sudo -H systemctl start mysqldPeriksa apakah Mroonga telah dipasang dengan benar berdasarkan manual Mroonga. Jika mroonga tidak diinstal, instal mroonga seperti yang berikut:
$ mysql -u root -p < /usr/share/mroonga/install.sqlTabel penghancuran secara eksplisit untuk plugin ini:
$ 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 ;Rekreasi skema untuk plugin ini:
$ 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_searchJika Anda menggunakan pekerjaan tertunda plugin redmine, Anda harus memulai pekerja:
$ sudo -H systemctl start [email protected]Sinkronisasi:
$ cd redmine
$ RAILS_ENV=production bin/rails full_text_search:synchronize UPSERT=later Berikut adalah beberapa alat yang berguna untuk disiapkan:
dev/run-mysql.sh dan dev/run-postgresql.sh : jalankan instance RDBMS baru oleh Docker.dev/initialize-redmine.sh : inisialisasi redmine.dev/run-test.sh : Jalankan tes untuk plugin pencarian teks lengkap.Kode Sumber Klon. Ini hanya diperlukan sekali.
$ 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 Anda dapat menambahkan lebih banyak plugin ke plugins/ .
Pilih Konfigurasi Database yang Sesuai:
$ ln -fs ../plugins/full_text_search/config/database.yml.example. ${REDMINE_VERSION} . ${RDBMS} config/database.ymlBerikut adalah contoh untuk menggunakan RedMine 5.0 dan MySQL:
$ ln -fs ../plugins/full_text_search/config/database.yml.example.5.0.mysql config/database.ymlJalankan RDBMS.
Untuk mysql:
$ plugins/full_text_search/dev/run-mysql.sh /tmp/mysqlUntuk postgresql:
$ plugins/full_text_search/dev/run-postgresql.sh /tmp/postgresqlInisialisasi Redmine:
$ plugins/full_text_search/dev/initialize-redmine.shJalankan tes:
$ plugins/full_text_search/dev/run-test.sh Anda perlu membuat kelas mapper untuk setiap target pencarian. Lihat lib/full_text_search/*_mapper.rb untuk detailnya.
Anda perlu menambahkan require_dependency "full_text_search/XXX_mapper ke init.rb untuk memuat kelas mapper baru ini.
Anda dapat mengonfirmasi perubahan Anda dengan cara pengembangan redmine biasa.
Misalnya, berikut adalah baris perintah untuk menjalankan redmine:
$ bin/rails serverAnda perlu menambahkan tes ke file berikut:
test/unit/full_text_search/XXX_test.rbtest/functional/full_text_search/search_controller_test.rbBerikut adalah baris perintah untuk menjalankan tes:
$ plugins/full_text_search/dev/run-test.sh Anda dapat menentukan opsi pengujian dengan TESTOPTS :
$ plugins/full_text_search/dev/run-test.sh TESTOPTS= " -n/test_XXX/ " Anda dapat melihat semua opsi tes dengan TESTOPTS=--help :
$ plugins/full_text_search/dev/run-test.sh TESTOPTS=--help Kenji Okimoto
Sutou Kouhei <[email protected]>
Shimadzu Corporation
Lisensi MIT. Lihat lisensi untuk detailnya.
asserts/stylesheets/fontawesome*/**/*asserts/stylesheets/fontawesome*/LICENSE.txt untuk detailnya git checkout -b my-new-feature )git commit -am 'Add some feature' )git push origin my-new-feature )