danmunn / redmine_dmsf

Fork of svn repository for redmine_dmsf
GNU General Public License v2.0
420 stars 195 forks source link

Xapian integral search module #1270

Closed xandre31 closed 3 years ago

xandre31 commented 3 years ago

Hello,

First of all, thant you very much for your wonderful plugin ! It works like a charm and is very useful. I'd like to add the integral search functionalities by adding xapian but I'm unsuccessfull until now. I follow https://xapian.org/docs/install.html (same prefix (/opt for core and omega) used as given and bindings are compile into /usr/) to download and compile xapian-core, omega and xapian-bindings. All compilations are successfull.

Unfortunately, under plugin admin page, it's still displayed : "Xapian module is unavailable" despite command "ruby /home/redmine/redmine/plugins/redmine_dmsf/extra/xapian_indexer.rb" works properly (no error given).

Here are technical informations :

I'm a real rookie into gem/ruby stuff and follows redmine nor dmsf step by step installations/upgrades doc.

Any kind help would be very appreciated. Thank your very mch.

picman commented 3 years ago

The script _xapianindexer.rb and omega library are used for files indexing. This works for you. The library xapian-bindings provides the communication from the plugin to the Xapian search engine.

The package xapian-bindings-ruby installed?

xandre31 commented 3 years ago

Hello @picman and thank your for your so quick response and explanations. The package xapian-bindings has been compiled and installed form source downloaded from xapian website. I didn't see any xapian-bindings-ruby package from xapian website.

picman commented 3 years ago

The package comes from CentOS. I mean to test Xapian packages directly from CentOS as described in Readme.md.

sudo yum install xapian-core xapian-bindings-ruby libxapian-dev poppler-utils antiword unzip catdoc libwpd-tools \
libwps-tools gzip unrtf catdvi djview djview3 uuid uuid-dev xz libemail-outlook-message-perl
xandre31 commented 3 years ago

xapian-bindings-ruby is installed from CentOS repo.

`(base) [root@stouredmine01 xapian-bindings-1.4.18]# yum install xapian-core xapian-bindings-ruby libxapian-dev poppler-utils antiword unzip catdoc libwpd-tools \

libwps-tools gzip unrtf catdvi djview djview3 uuid uuid-dev xz libemail-outlook-message-perl Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile

  • base: miroir.univ-lorraine.fr
  • centos-sclo-rh: mirror.crexio.com
  • centos-sclo-sclo: miroir.univ-lorraine.fr
  • epel: mirrors.glesys.net
  • extras: mirror.crexio.com
  • nux-dextop: mirror.li.nux.ro
  • remi: remirepo.reloumirrors.net
  • remi-php56: remirepo.reloumirrors.net
  • remi-php73: remirepo.reloumirrors.net
  • remi-safe: remirepo.reloumirrors.net
  • updates: miroir.univ-paris13.fr No package libxapian-dev available. Package poppler-utils-0.26.5-43.el7.1.x86_64 already installed and latest version No package antiword available. Package unzip-6.0-22.el7_9.x86_64 already installed and latest version Package catdoc-0.95-1.el7.x86_64 already installed and latest version Package libwpd-tools-0.10.0-2.el7.x86_64 already installed and latest version Package libwps-tools-0.4.7-1.el7.x86_64 already installed and latest version Package gzip-1.5-10.el7.x86_64 already installed and latest version Package unrtf-0.21.9-8.el7.x86_64 already installed and latest version No package catdvi available. No package djview available. No package djview3 available. Package uuid-1.6.2-26.el7.x86_64 already installed and latest version No package uuid-dev available. Package xz-5.2.2-1.el7.x86_64 already installed and latest version No package libemail-outlook-message-perl available. Resolving Dependencies --> Running transaction check ---> Package xapian-bindings-ruby.x86_64 0:1.2.22-1.el7 will be installed --> Processing Dependency: xapian-bindings = 1.2.22-1.el7 for package: xapian-bindings-ruby-1.2.22-1.el7.x86_64 --> Processing Dependency: libxapian.so.22()(64bit) for package: xapian-bindings-ruby-1.2.22-1.el7.x86_64 ---> Package xapian-core.x86_64 0:1.2.22-1.el7 will be installed --> Running transaction check ---> Package xapian-bindings.x86_64 0:1.2.22-1.el7 will be installed ---> Package xapian-core-libs.x86_64 0:1.2.22-1.el7 will be installed --> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================================================================================= Package Arch Version Repository Size

Installing: xapian-bindings-ruby x86_64 1.2.22-1.el7 epel 171 k xapian-core x86_64 1.2.22-1.el7 epel 126 k Installing for dependencies: xapian-bindings x86_64 1.2.22-1.el7 epel 49 k xapian-core-libs x86_64 1.2.22-1.el7 epel 773 k

Transaction Summary

Install 2 Packages (+2 Dependent packages)

Total download size: 1.1 M Installed size: 3.7 M Is this ok [y/d/N]: y Downloading packages: (1/4): xapian-bindings-ruby-1.2.22-1.el7.x86_64.rpm | 171 kB 00:00:00 (2/4): xapian-bindings-1.2.22-1.el7.x86_64.rpm | 49 kB 00:00:00 (3/4): xapian-core-1.2.22-1.el7.x86_64.rpm | 126 kB 00:00:00 (4/4): xapian-core-libs-1.2.22-1.el7.x86_64.rpm | 773 kB 00:00:00

Total 1.4 MB/s | 1.1 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : xapian-core-libs-1.2.22-1.el7.x86_64 1/4 Installing : xapian-bindings-1.2.22-1.el7.x86_64 2/4 Installing : xapian-bindings-ruby-1.2.22-1.el7.x86_64 3/4 Installing : xapian-core-1.2.22-1.el7.x86_64 4/4 Verifying : xapian-core-libs-1.2.22-1.el7.x86_64 1/4 Verifying : xapian-bindings-1.2.22-1.el7.x86_64 2/4 Verifying : xapian-core-1.2.22-1.el7.x86_64 3/4 Verifying : xapian-bindings-ruby-1.2.22-1.el7.x86_64 4/4

Installed: xapian-bindings-ruby.x86_64 0:1.2.22-1.el7 xapian-core.x86_64 0:1.2.22-1.el7

Dependency Installed: xapian-bindings.x86_64 0:1.2.22-1.el7 xapian-core-libs.x86_64 0:1.2.22-1.el7

Complete! `

picman commented 3 years ago

Check log/production.log file after you see the message 'Xapian is not available'. There should be a warning message. Maybe that says more about the problem.

xandre31 commented 3 years ago

You're right :

Started GET "/settings/plugin/redmine_dmsf" for xxxxxx at 2021-07-21 10:29:46 +0200 Processing by SettingsController#plugin as HTML Parameters: {"id"=>"redmine_dmsf"} Current user: andre (id=28) Rendering settings/plugin.html.erb within layouts/admin Rendered plugins/redmine_dmsf/app/views/settings/_dmsf_columns.html.erb (3.7ms) **cannot load such file -- xapian** Rendered plugins/redmine_dmsf/app/views/settings/_dmsf_settings.html.erb (26.0ms) Rendered settings/plugin.html.erb within layouts/admin (29.8ms) Rendered admin/_menu.html.erb (7.9ms) Rendering layouts/base.html.erb Rendered layouts/base.html.erb (49.2ms) Completed 200 OK in 113ms (Views: 86.2ms | ActiveRecord: 9.9ms)

How can I solve this issue?

picman commented 3 years ago

Hm, I don't know. Here is described how I install it in Debian.

https://github.com/danmunn/redmine_dmsf/wiki/Xapian-tools-and-bindings

xandre31 commented 3 years ago

Thank you for your step by step doc. I did the same, and one thing which suprised me is when I compiled xapian-bindings sources is that it only talked about perl :

Libraries have been installed in: /usr/local/lib64/perl5/auto/Xapian

Nothing regarding ruby binding.

And I still have same error in logs :

'No Xapian search engine interface for Ruby installed => Full-text search won't be available. Install a ruby-xapian package or an alternative Xapian binding (https://xapian.org). cannot load such file -- xapian'

picman commented 3 years ago

https://xapian.org/docs/bindings/ruby/

xandre31 commented 3 years ago

I reinstall redmine and passenger after xapian compilation and now, xapian module is avalaible in dmsf plugin. But search into files content doesn't work. I reindex database :

/usr/local/bin/omindex -s french --db /home/redmine/redmine-4.2.1/dmsf_index/french /home/redmine/redmine/files/dmsf --url / --depth-limit=0 -v --overwrite /usr/local/bin/omindex -s english --db /home/redmine/redmine-4.2.1/dmsf_index/english /home/redmine/redmine/files/dmsf --url / --depth-limit=0 -v --overwrite

But I now have this error :

REDMINE_XAPIAN ERROR: Xapian database is not properly set, initiated or it's corrupted. DatabaseOpeningError: Couldn't stat '/english' (No such file or directory)

Here is my plugin conf regarding xapian :

image

picman commented 3 years ago
  1. Enter the path (/home/redmine/redmine-4.2.1/dmsf_index) into Indexer la base de données.
  2. Check whether /home/redmine/redmine-4.2.1/dmsf_index/english exists.
xandre31 commented 3 years ago

I thought the path was set by default. My bad and my apologies! It works very well now !

Thank you very much for your patience and kindness!