Skip to content

Commit 5594c0b

Browse files
committed
Added mapper logic - create full index + mapping
1 parent 280d49d commit 5594c0b

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

lib/MetaCPAN/Mapper.pm

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,30 @@ sub index_exists ($self, $index) {
3535
$self->{es}->indices->exists( index => $index );
3636
}
3737

38-
sub index_create ($self, $index) {
39-
$self->{es}->indices->create( index => $index );
38+
sub index_create ($self, %args) {
39+
my $index = $args{index};
40+
$index or die "Need an index name to create an index\n";
41+
42+
my $add_mapping = $args{add_mapping};
43+
my $delete_first = $args{delete_first};
44+
45+
$self->index_delete($index, 1) if ($delete_first);
46+
47+
my @body;
48+
if ($add_mapping) {
49+
my $home = home();
50+
my $mapping_file = $home->child('conf/es/' . $index . '/mapping.json');
51+
my $mapping = decode_json $mapping_file->slurp();
52+
my $settings_file = $home->child('conf/es/' . $index . '/settings.json');
53+
my $settings = decode_json $settings_file->slurp();
54+
55+
@body = ( body => {
56+
settings => $settings,
57+
mappings => { $index => $mapping },
58+
});
59+
}
60+
61+
$self->{es}->indices->create( index => $index, @body );
4062
}
4163

4264
sub index_delete ($self, $index, $skip_exists) {

0 commit comments

Comments
 (0)