@@ -, +, @@ --- misc/search_tools/reindex_patrons.pl | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 misc/search_tools/reindex_patrons.pl --- a/misc/search_tools/reindex_patrons.pl +++ a/misc/search_tools/reindex_patrons.pl @@ -0,0 +1,60 @@ +use Modern::Perl; + +use Koha::Patrons; +use Koha::SearchEngine::Elasticsearch; + +use Koha::SearchEngine::Elasticsearch::Indexer; + +my $index_name = "patrons"; +my $indexer = Koha::SearchEngine::Elasticsearch::Indexer->new( { index => $index_name } ); + +$indexer->drop_index; + +my $patrons = Koha::Patrons->search; + +my ( @id_buffer, @commit_buffer ); +while ( my $patron = $patrons->next ) { + my $id = $patron->borrowernumber; + my $record = $patron->unblessed; + $record->{_id} = $id; + push @id_buffer, $id; + push @commit_buffer, $record; +} + +warn "committing"; + +if ( !$indexer->store ) { + + my $params = $indexer->get_elasticsearch_params(); + my $mappings = { + data => { + properties => { + borrowernumber => { + type => 'string', + search_analyzer => 'analyser_standard', + index_analyzer => 'analyser_standard', + }, + cardnumber => { + type => 'string', + search_analyzer => 'analyser_standard', + index_analyzer => 'analyser_standard', + }, + surname => { + type => 'string', + search_analyzer => 'analyser_standard', + index_analyzer => 'analyser_standard', + }, + } + } + }; + $indexer->store( + Catmandu::Store::ElasticSearch->new( + %$params, + index_settings => $indexer->get_elasticsearch_settings(), + index_mappings => $mappings, + ) + ); +} + +$indexer->store->bag->add_many(\@commit_buffer); +$indexer->store->bag->commit; --