[Koha-bugs] [Bug 12478] Elasticsearch support for Koha

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Mon Feb 2 16:25:08 CET 2015


http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=12478

--- Comment #32 from Jonathan Druart <jonathan.druart at biblibre.com> ---
(In reply to Robin Sheat from comment #30)
> (In reply to Jonathan Druart from comment #29)
> > Try with the lastest  (1.4.2):
> > 
> >   $ wget
> > https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-
> > 1.4.2.deb
> 
> For what it's worth, I'm using 1.3.7 which is the latest stable. I wouldn't
> think that would make a difference really though.

Will try with 1.3.7, but I believe I got the same error as before ( with this
version.

> Sitting on "committing" is consistent with not being able to talk to the ES
> server, and there's currently no error handling for that (I'd expect it to
> time out eventually, but who knows how long that'll take.) If I were you,
> that's where I'd start looking. Make sure you can hit it with curl, and that
> the config in koha-conf.xml is correct. fwiw, mine is:
> 
>  <elasticsearch>
>      <server>koha-es:9200</server>
>      <index_name>koha_robin</index_name>
>  </elasticsearch>

Yes, I have something similar:
303  <elasticsearch>
304      <server>http://localhost:9200/</server>
305    <index_name>koha_instance</index_name>
306  </elasticsearch>

> If you're keen, fire it up in the debugger (perl -d) and do:
> 
> c Catmandu::Store::ElasticSearch::Bag::commit

Actually it never reach commit:

% perl -d misc/search_tools/rebuild_elastic_search.pl

Loading DB routines from perl5db.pl version 1.44
Editor support available.

Enter h or 'h h' for help, or 'man perldebug' for more help.

main::(misc/search_tools/rebuild_elastic_search.pl:92):
92:     my $verbose = 0;
  DB<1> c Catmandu::Addable::add_many                             
Indexing biblios
3
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:84):
84:         my ($self, $many) = @_;
  DB<2> n
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:86):
86:         if (is_hash_ref($many)) {
  DB<2> 
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:91):
91:         if (is_array_ref($many)) {
  DB<2> 
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:96):
96:         if (is_invocant($many)) {
  DB<2> 
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:97):
97:             $many = check_able($many, 'generator')->generator;
  DB<2> 
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:100):
100:        check_code_ref($many);
  DB<2> 
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:102):
102:        my $data;
  DB<2> 
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:103):
103:        my $n = 0;
  DB<2> 
Catmandu::Addable::add_many(/usr/share/perl5/Catmandu/Addable.pm:104):
104:        while (defined($data = $many->())) {
  DB<2> use Data::Dumper; warn Dumper $many;
$VAR1 = sub { "DUMMY" };
 at (eval 1256)[/usr/share/perl/5.20/perl5db.pl:732] line 2.
        eval 'no strict; ($@, $!, $^E, $,, $/, $\\, $^W) = @DB::saved;package
Catmandu::Addable; $^D = $^D | $DB::db_stop;
use Data::Dumper; warn Dumper $many;;
' called at /usr/share/perl/5.20/perl5db.pl line 732
        DB::eval called at /usr/share/perl/5.20/perl5db.pl line 3094
        DB::DB called at /usr/share/perl5/Catmandu/Addable.pm line 104
       
Catmandu::Addable::add_many(Catmandu::Store::ElasticSearch::Bag=HASH(0xd5c503c),
Catmandu::Iterator=CODE(0xc565080)) called at Koha/ElasticSearch/Indexer.pm
line 80
       
Koha::ElasticSearch::Indexer::update_index(Koha::ElasticSearch::Indexer=HASH(0xcd60c00),
ARRAY(0xca8ca80), ARRAY(0xca8cae4)) called at
misc/search_tools/rebuild_elastic_search.pl line 184
        main::do_reindex(CODE(0xcae4dc0), "biblios") called at
misc/search_tools/rebuild_elastic_search.pl line 132

  DB<3> warn ref($many);
CODE at (eval 1257)[/usr/share/perl/5.20/perl5db.pl:732] line 2.
 at (eval 1257)[/usr/share/perl/5.20/perl5db.pl:732] line 2.
        eval 'no strict; ($@, $!, $^E, $,, $/, $\\, $^W) = @DB::saved;package
Catmandu::Addable; $^D = $^D | $DB::db_stop;
warn ref($many);;
' called at /usr/share/perl/5.20/perl5db.pl line 732
        DB::eval called at /usr/share/perl/5.20/perl5db.pl line 3094
        DB::DB called at /usr/share/perl5/Catmandu/Addable.pm line 104
       
Catmandu::Addable::add_many(Catmandu::Store::ElasticSearch::Bag=HASH(0xd5c503c),
Catmandu::Iterator=CODE(0xc565080)) called at Koha/ElasticSearch/Indexer.pm
line 80
       
Koha::ElasticSearch::Indexer::update_index(Koha::ElasticSearch::Indexer=HASH(0xcd60c00),
ARRAY(0xca8ca80), ARRAY(0xca8cae4)) called at
misc/search_tools/rebuild_elastic_search.pl line 184
        main::do_reindex(CODE(0xcae4dc0), "biblios") called at
misc/search_tools/rebuild_elastic_search.pl line 132

  DB<4> n

And nothing else (no CPU activity neither).
the ref($many) returning "CODE" does not smell good :)

continuing

  DB<4> n
^CqMARC::File::USMARC::_next(/usr/share/perl5/MARC/File/USMARC.pm:53):
53:         local $/ = END_OF_RECORD;
  DB<4> q
% pmvers MARC::File::USMARC
/usr/bin/pmvers: unknown version for module `MARC::File::USMARC'

hum...

Since I installed it using the CPAN first, I removed it:
% sudo cpanm -U Catmandu::Importer::MARC
[...]
Successfully uninstalled Catmandu::Importer::MARC

% dpkg -l libcatmandu-marc-perl
ii  libcatmandu-marc-perl | 0.206-2 | all | modules for working with MARC data
within the Catmandu framework

% perl misc/search_tools/rebuild_elastic_search.pl
[lot of logs]
25888 records indexed.

\o/
Sorry about that!

I should have tried pmpath MARC::File::USMARC to catch the problem quickly.

Now, search records!

OPAC: cgi-bin/koha/opac-search.pl returns
Can't locate Koha/ElasticSearch/Search.pm in @INC
It's seem to be caused by the last commit 
Bug 12478 - authority work in progress
diff --git a/Koha/ElasticSearch/Search.pm b/Koha/ElasticSearch/Search.pm
deleted file mode 100644

I tried to fix some compilation errors (patch coming), but the branch looks to
be let in an unusable state.

The next error is: Can't locate object method "mk_accessors" via package
"Koha::SearchEngine::ElasticSearch::Search"

I don't want to continue and add conflicts with something you have already
fixed.

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list