Bug 19563: Generation of sort_fields uses incorrect condition

Fix incorrect condition for if clause for generating <field>__sort mappings
for Elasticsearch. Also remove redundant check for same condition when
generating fixer rules.

Test plan:
1. Inspect current mappings for example by viewing: http://<elasticsearch_host>:9200/koha_<koha_instance_name>_biblios/_mapping.
2. If using the default configuraion only "author" has a sort field (author__sort).
4. Appy patch.
5. Reindex using rebuild_elastic_search.pl.
6. All fields except those with sort sort set to "0" should now have sort fields, which in the default configuration is all but "author".

Signed-off-by: David Bourgault <david.bourgault@inlibro.com>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
David Gustafsson 2017-11-02 13:44:13 +01:00 committed by Jonathan Druart
parent 34cdd536cb
commit 963eaeab7b
1 changed files with 5 additions and 10 deletions

View File

@ -215,9 +215,10 @@ sub get_elasticsearch_mappings {
search_analyzer => 'simple',
};
}
# Sort may be true, false, or undef. Here we care if it's
# anything other than undef.
if (defined $sort) {
# Sort is a bit special as it can be true, false, undef.
# We care about "true" or "undef",
# "undef" means to do the default thing, which is make it sortable.
if ($sort || !defined $sort) {
$mappings->{data}{properties}{ $name . '__sort' } = {
search_analyzer => "analyser_phrase",
analyzer => "analyser_phrase",
@ -346,14 +347,8 @@ sub get_fixer_rules {
if ($type eq 'sum' ) {
push @rules, "sum('$name')";
}
# Sort is a bit special as it can be true, false, undef. For
# fixer rules, we care about "true", or "undef" if there is
# special handling of this field from other one. "undef" means
# to do the default thing, which is make it sortable.
if ($self->sort_fields()->{$name}) {
if ($sort || !defined $sort) {
push @rules, "marc_map('$marc_field','${name}__sort.\$append', $options)";
}
push @rules, "marc_map('$marc_field','${name}__sort.\$append', $options)";
}
}
);