From 12ac1be2559ccab1cf9ea265f311a4f32168bc5e Mon Sep 17 00:00:00 2001 From: David Gustafsson Date: Fri, 3 Nov 2017 13:21:22 +0100 Subject: [PATCH] Bug 19575: Use canonical field names and resolve aliased fields Adjust elastic search mappings to more closely match Zebra equivalents resolving serveral issues with coded Zebra searches in templates and sorting of search results in UI. Also make field names in search strings case insensitive to accept case variations in template links and user input. Sponsored-by: Gothenburg University Library --- Koha/SearchEngine/Elasticsearch.pm | 4 +- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 166 +- Koha/SearchEngine/Elasticsearch/Search.pm | 14 +- admin/searchengine/elasticsearch/mappings.yaml | 2329 ++++++++++++++------ ...ical-field-names-and-resolve-aliased-fields.sql | 29 + .../Koha_SearchEngine_Elasticsearch_Search.t | 16 +- 6 files changed, 1843 insertions(+), 715 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_19575-use-canonical-field-names-and-resolve-aliased-fields.sql diff --git a/Koha/SearchEngine/Elasticsearch.pm b/Koha/SearchEngine/Elasticsearch.pm index d859a39362..eebd34b5b6 100644 --- a/Koha/SearchEngine/Elasticsearch.pm +++ b/Koha/SearchEngine/Elasticsearch.pm @@ -443,7 +443,9 @@ sub _foreach_mapping { while ( my $search_field = $search_fields->next ) { $sub->( - $search_field->name, + # Force lower case on indexed field names for case insensitive + # field name searches + lc($search_field->name), $search_field->type, $search_field->get_column('facet'), $search_field->get_column('suggestible'), diff --git a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm index 95cc86ab78..5795ab1f00 100644 --- a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm +++ b/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm @@ -112,13 +112,13 @@ sub build_query { # See _convert_facets in Search.pm for how these get turned into # things that Koha can use. $res->{aggregations} = { - author => { terms => { field => "author__facet" } }, - subject => { terms => { field => "subject__facet" } }, - itype => { terms => { field => "itype__facet" } }, + author => { terms => { field => "author__facet" } }, + subject => { terms => { field => "subject__facet" } }, + itype => { terms => { field => "itype__facet" } }, location => { terms => { field => "location__facet" } }, 'su-geo' => { terms => { field => "su-geo__facet" } }, - se => { terms => { field => "se__facet" } }, - ccode => { terms => { field => "ccode__facet" } }, + 'title-series' => { terms => { field => "title-series__facet" } }, + ccode => { terms => { field => "ccode__facet" } }, }; my $display_library_facets = C4::Context->preference('DisplayLibraryFacets'); @@ -411,12 +411,12 @@ appropriate search object. =cut our $koha_to_index_name = { - mainmainentry => 'Heading-Main', - mainentry => 'Heading', - match => 'Match', - 'match-heading' => 'Match-heading', - 'see-from' => 'Match-heading-see-from', - thesaurus => 'Subject-heading-thesaurus', + mainmainentry => 'heading-main', + mainentry => 'heading', + match => 'match', + 'match-heading' => 'match-heading', + 'see-from' => 'match-heading-see-from', + thesaurus => 'subject-heading-thesaurus', all => '' }; @@ -429,6 +429,9 @@ sub build_authorities_query_compat { # extensible hash form that is understood by L. my @searches; + # Convert to lower case + $marclist = [map(lc, @{$marclist})]; + # Make sure everything exists foreach my $m (@$marclist) { Koha::Exceptions::WrongParameter->throw("Invalid marclist field provided: $m") @@ -445,8 +448,8 @@ sub build_authorities_query_compat { my %sort; my $sort_field = - ( $orderby =~ /^Heading/ ) ? 'Heading' - : ( $orderby =~ /^Auth/ ) ? 'Local-Number' + ( $orderby =~ /^heading/ ) ? 'heading' + : ( $orderby =~ /^auth/ ) ? 'local-number' : undef; if ($sort_field) { my $sort_order = ( $orderby =~ /Asc$/ ) ? 'asc' : 'desc'; @@ -477,16 +480,20 @@ sub _convert_sort_fields { # Turn the sorting into something we care about. my %sort_field_convert = ( - acqdate => 'acqdate', + acqdate => 'date-of-acquisition', author => 'author', - call_number => 'callnum', + call_number => 'local-classification', popularity => 'issues', relevance => undef, # default title => 'title', - pubdate => 'pubdate', + pubdate => 'date-of-publication', + ); + my %sort_order_convert = ( + dsc => 'desc', + asc => 'asc', + az => 'asc', + za => 'desc', ); - my %sort_order_convert = - ( qw( dsc desc ), qw( asc asc ), qw( az asc ), qw( za desc ) ); # Convert the fields and orders, drop anything we don't know about. grep { $_->{field} } map { @@ -513,21 +520,89 @@ types. =cut our %index_field_convert = ( - 'kw' => '_all', - 'ti' => 'title', - 'au' => 'author', - 'su' => 'subject', - 'nb' => 'isbn', - 'se' => 'title-series', - 'callnum' => 'callnum', - 'itype' => 'itype', - 'ln' => 'ln', - 'branch' => 'homebranch', - 'fic' => 'lf', - 'mus' => 'rtype', - 'aud' => 'ta', - 'hi' => 'Host-Item-Number', + 'kw' => '_all', + 'ab' => 'abstract', + 'au' => 'author', + 'lcn' => 'local-classification', + 'callnum' => 'local-classification', + 'record-type' => 'rtype', + 'mc-rtype' => 'rtype', + 'mus' => 'rtype', + 'lc-card' => 'lc-card-number', + 'sn' => 'local-number', + 'yr' => 'date-of-publication', + 'pubdate' => 'date-of-publication', + 'acqdate' => 'date-of-acquisition', + 'date/time-last-modified' => 'date-time-last-modified', + 'dtlm' => 'date/time-last-modified', + 'diss' => 'dissertation-information', + 'nb' => 'isbn', + 'ns' => 'issn', + 'music-number' => 'identifier-publisher-for-music', + 'number-music-publisher' => 'identifier-publisher-for-music', + 'music' => 'identifier-publisher-for-music', + 'ident' => 'identifier-standard', + 'cpn' => 'corporate-name', + 'cfn' => 'conference-name', + 'pn' => 'personal-name', + 'pb' => 'publisher', + 'pv' => 'provider', + 'nt' => 'note', + 'notes' => 'note', + 'rcn' => 'record-control-number', + 'su' => 'subject', + 'su-to' => 'subject', + #'su-geo' => 'subject', + 'su-ut' => 'subject', + 'ti' => 'title', + 'se' => 'title-series', + 'ut' => 'title-uniform', + 'an' => 'authority-number', + 'koha-auth-number' => 'authority-number', + 'at' => 'authtype', + 'he' => 'heading', + 'rank' => 'relevance', + 'phr' => 'st-phrase', + 'wrdl' => 'st-word-list', + 'rt' => 'right-truncation', + 'rtrn' => 'right-truncation', + 'ltrn' => 'left-truncation', + 'rltrn' => 'left-and-right', + 'mc-itemtype' => 'itemtype', + 'mc-ccode' => 'ccode', + 'branch' => 'homebranch', + 'mc-loc' => 'location', + 'stocknumber' => 'number-local-acquisition', + 'inv' => 'number-local-acquisition', + 'bc' => 'barcode', + 'mc-itype' => 'itype', + 'aub' => 'author-personal-bibliography', + 'auo' => 'author-in-order', + 'ff8-22' => 'ta', + 'aud' => 'ta', + 'audience' => 'ta', + 'frequency-code' => 'ff8-18', + 'illustration-code' => 'ff8-18-21', + 'regularity-code' => 'ff8-19', + 'type-of-serial' => 'ff8-21', + 'format' => 'ff8-23', + 'conference-code' => 'ff8-29', + 'festschrift-indicator' => 'ff8-30', + 'index-indicator' => 'ff8-31', + 'fiction' => 'lf', + 'fic' => 'lf', + 'literature-code' => 'lf', + 'biography' => 'bio', + 'ff8-34' => 'bio', + 'biography-code' => 'bio', + 'l-format' => 'ff7-01-02', + 'lex' => 'lexile-number', + 'hi' => 'host-item-number', + 'itu' => 'index-term-uncontrolled', + 'itg' => 'index-term-genre', ); +my $field_name_pattern = '[\w\-]+'; +my $multi_field_pattern = "(?:\\.$field_name_pattern)*"; sub _convert_index_fields { my ( $self, @indexes ) = @_; @@ -540,14 +615,15 @@ sub _convert_index_fields { # when joining things, to indicate we make it an 'OR' join. # (Sorry, this got a bit ugly after special cases were found.) grep { $_->{field} } map { - my ( $f, $t ) = split /,/; + # Lower case all field names + my ( $f, $t ) = map(lc, split /,/); my $mc = ''; if ($f =~ /^mc-/) { $mc = 'mc-'; $f =~ s/^mc-//; } my $r = { - field => $index_field_convert{$f}, + field => exists $index_field_convert{$f} ? $index_field_convert{$f} : $f, type => $index_type_convert{ $t // '__default' } }; $r->{field} = ($mc . $r->{field}) if $mc && $r->{field}; @@ -599,12 +675,23 @@ second part is stripped off as we can't yet handle that. Making it work will have to wait for a real query parser. =cut - sub _convert_index_strings_freeform { my ( $self, $search ) = @_; - while ( my ( $zeb, $es ) = each %index_field_convert ) { - $search =~ s/\b$zeb(?:,[\w\-]*)?:/$es:/g; - } + # @TODO: Currenty will alter also fields contained within quotes: + # `searching for "stuff cn:123"` for example will become + # `searching for "stuff local-number:123" + # + # Fixing this is tricky, one possibility: + # https://stackoverflow.com/questions/19193876/perl-regex-to-match-a-string-that-is-not-enclosed-in-quotes + # Still not perfect, and will not handle escaped quotes within quotes and assumes balanced quotes. + # + # Another, not so elegant, solution could be to replace all quoted content with placeholders, and put + # them back when processing is done. + + # Lower case field names + $search =~ s/($field_name_pattern)(?:,[\w-]*)?($multi_field_pattern):/\L$1\E$2:/og; + # Resolve possible field aliases + $search =~ s/($field_name_pattern)($multi_field_pattern):/(exists $index_field_convert{$1} ? $index_field_convert{$1} : $1)."$2:"/oge; return $search; } @@ -793,12 +880,13 @@ operands and double quoted strings. =cut +my $tokenize_split_re = qr/((?:${field_name_pattern}${multi_field_pattern}:)?"[^"]+"|\s+)/; sub _truncate_terms { my ( $self, $query ) = @_; # '"donald duck" title:"the mouse" and peter" get split into # ['', '"donald duck"', '', ' ', '', 'title:"the mouse"', '', ' ', 'and', ' ', 'pete'] - my @tokens = split /((?:[\w\-.]+:)?"[^"]+"|\s+)/, $query; + my @tokens = split $tokenize_split_re, $query; # Filter out empty tokens my @words = grep { $_ !~ /^\s*$/ } @tokens; diff --git a/Koha/SearchEngine/Elasticsearch/Search.pm b/Koha/SearchEngine/Elasticsearch/Search.pm index 4d584f7906..f4944bf2d4 100644 --- a/Koha/SearchEngine/Elasticsearch/Search.pm +++ b/Koha/SearchEngine/Elasticsearch/Search.pm @@ -202,7 +202,7 @@ sub search_auth_compat { # rather than hard-coded conversions. # Our results often come through as nested arrays, to fix this # requires changes in catmandu. - my $authid = $record->{ 'Local-number' }[0][0]; + my $authid = $record->{ 'local-number' }[0][0]; $result{authid} = $authid; # TODO put all this info into the record at index time so we @@ -262,7 +262,7 @@ sub count_auth_use { query => { bool => { # query => { match_all => {} }, - filter => { term => { an => $authid } } + filter => { term => { 'authority-number' => $authid } } } } }; @@ -425,13 +425,13 @@ sub _convert_facets { # things that zebra uses. # TODO let the library define the order using the interface. my %type_to_label = ( - author => { order => 1, label => 'Authors', }, - itype => { order => 2, label => 'ItemTypes', }, + author => { order => 1, label => 'Authors', }, + itype => { order => 2, label => 'ItemTypes', }, location => { order => 3, label => 'Location', }, 'su-geo' => { order => 4, label => 'Places', }, - se => { order => 5, label => 'Series', }, - subject => { order => 6, label => 'Topics', }, - ccode => { order => 7, label => 'CollectionCodes',}, + 'title-series' => { order => 5, label => 'Series', }, + subject => { order => 6, label => 'Topics', }, + ccode => { order => 7, label => 'CollectionCodes',}, holdingbranch => { order => 8, label => 'HoldingLibrary' }, homebranch => { order => 9, label => 'HomeLibrary' } ); diff --git a/admin/searchengine/elasticsearch/mappings.yaml b/admin/searchengine/elasticsearch/mappings.yaml index 25a1cc7b93..2f45810af4 100644 --- a/admin/searchengine/elasticsearch/mappings.yaml +++ b/admin/searchengine/elasticsearch/mappings.yaml @@ -1,7 +1,7 @@ --- authorities: - Corporate-name-see-also-from: - label: Corporate-name-see-also-from + corporate-name-see-also-from: + label: corporate-name-see-also-from mappings: - facet: '' marc_field: 510abcdefghklmnoprstvxyz @@ -14,8 +14,8 @@ authorities: sort: ~ suggestible: '' type: '' - Corporate-name-see-from: - label: Corporate-name-see-from + corporate-name-see-from: + label: corporate-name-see-from mappings: - facet: '' marc_field: 410abcdefghklmnoprstvxyz @@ -28,8 +28,8 @@ authorities: sort: ~ suggestible: '' type: '' - Descriptive-cataloging-rules: - label: Descriptive-cataloging-rules + descriptive-cataloging-rules: + label: descriptive-cataloging-rules mappings: - facet: '' marc_field: 008_/10 @@ -42,8 +42,8 @@ authorities: sort: ~ suggestible: '' type: '' - Heading: - label: Heading + heading: + label: heading mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -66,8 +66,8 @@ authorities: sort: ~ suggestible: '' type: '' - Heading-Main: - label: Heading-Main + heading-main: + label: heading-main mappings: - facet: '' marc_field: 100a @@ -90,8 +90,8 @@ authorities: sort: ~ suggestible: '' type: '' - Heading-use-main-or-added-entry: - label: Heading-use-main-or-added-entry + heading-use-main-or-added-entry: + label: heading-use-main-or-added-entry mappings: - facet: '' marc_field: 008_/14 @@ -104,8 +104,8 @@ authorities: sort: ~ suggestible: '' type: '' - Heading-use-series-added-entry: - label: Heading-use-series-added-entry + heading-use-series-added-entry: + label: heading-use-series-added-entry mappings: - facet: '' marc_field: 008_/16 @@ -118,8 +118,8 @@ authorities: sort: ~ suggestible: '' type: '' - Heading-use-subject-added-entry: - label: Heading-use-subject-added-entry + heading-use-subject-added-entry: + label: heading-use-subject-added-entry mappings: - facet: '' marc_field: 008_/15 @@ -132,8 +132,8 @@ authorities: sort: ~ suggestible: '' type: '' - Kind-of-record: - label: Kind-of-record + kind-of-record: + label: kind-of-record mappings: - facet: '' marc_field: 008_/9 @@ -146,8 +146,8 @@ authorities: sort: ~ suggestible: '' type: '' - LC-card-number: - label: LC-card-number + lc-card-number: + label: lc-card-number mappings: - facet: '' marc_field: 010az @@ -160,8 +160,8 @@ authorities: sort: ~ suggestible: '' type: '' - Local-number: - label: Local-number + local-number: + label: local-number mappings: - facet: '' marc_field: '001' @@ -174,8 +174,8 @@ authorities: sort: ~ suggestible: '' type: string - Match: - label: Match + match: + label: match mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -258,8 +258,8 @@ authorities: sort: ~ suggestible: '' type: '' - Match-heading: - label: Match-heading + match-heading: + label: match-heading mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -282,8 +282,8 @@ authorities: sort: ~ suggestible: '' type: '' - Match-heading-see-from: - label: Match-heading-see-from + match-heading-see-from: + label: match-heading-see-from mappings: - facet: '' marc_field: 400abcdefghjklmnopqrstvxyz @@ -316,8 +316,8 @@ authorities: sort: ~ suggestible: '' type: '' - Meeting-name: - label: Meeting-name + meeting-name: + label: meeting-name mappings: - facet: '' marc_field: 111acdefghjklnpqstvxyz @@ -330,8 +330,8 @@ authorities: sort: ~ suggestible: '' type: '' - Meeting-name-heading: - label: Meeting-name-heading + meeting-name-heading: + label: meeting-name-heading mappings: - facet: '' marc_field: 111acdefghjklnpqstvxyz @@ -344,8 +344,8 @@ authorities: sort: ~ suggestible: '' type: '' - Meeting-name-see-also-from: - label: Meeting-name-see-also-from + meeting-name-see-also-from: + label: meeting-name-see-also-from mappings: - facet: '' marc_field: 511acdefghjklnpqstvxyz @@ -358,8 +358,8 @@ authorities: sort: ~ suggestible: '' type: '' - Meeting-name-see-from: - label: Meeting-name-see-from + meeting-name-see-from: + label: meeting-name-see-from mappings: - facet: '' marc_field: 411acdefghjklnpqstvxyz @@ -372,8 +372,8 @@ authorities: sort: ~ suggestible: '' type: '' - Personal-name: - label: Personal-name + personal-name: + label: personal-name mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -386,8 +386,8 @@ authorities: sort: ~ suggestible: '' type: '' - Personal-name-heading: - label: Personal-name-heading + personal-name-heading: + label: personal-name-heading mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -400,8 +400,8 @@ authorities: sort: ~ suggestible: '' type: '' - Personal-name-see-also-from: - label: Personal-name-see-also-from + personal-name-see-also-from: + label: personal-name-see-also-from mappings: - facet: '' marc_field: 500abcdefghjklmnopqrstvxyz @@ -414,8 +414,8 @@ authorities: sort: ~ suggestible: '' type: '' - Personal-name-see-from: - label: Personal-name-see-from + personal-name-see-from: + label: personal-name-see-from mappings: - facet: '' marc_field: 400abcdefghjklmnopqrstvxyz @@ -428,8 +428,8 @@ authorities: sort: ~ suggestible: '' type: '' - Record-source: - label: Record-source + record-source: + label: record-source mappings: - facet: '' marc_field: 040acd @@ -442,8 +442,8 @@ authorities: sort: ~ suggestible: '' type: '' - See-also-from: - label: See-also-from + see-also-from: + label: see-also-from mappings: - facet: '' marc_field: 500abcdefghjklmnopqrstvxyz @@ -476,8 +476,8 @@ authorities: sort: ~ suggestible: '' type: '' - See-from: - label: See-from + see-from: + label: see-from mappings: - facet: '' marc_field: 400abcdefghjklmnopqrstvxyz @@ -510,8 +510,8 @@ authorities: sort: ~ suggestible: '' type: '' - Subject-heading-thesaurus: - label: Subject-heading-thesaurus + subject-heading-thesaurus: + label: subject-heading-thesaurus mappings: - facet: '' marc_field: 008_/11 @@ -539,1266 +539,1840 @@ authorities: suggestible: '' type: '' biblios: - Host-Item-Number: - label: Host-Item-Number + abstract: + label: abstract mappings: - facet: '' - marc_field: '7739' + marc_field: '520' marc_type: marc21 sort: ~ suggestible: '' + type: '' + acqsource: + label: acqsource + mappings: - facet: '' - marc_field: '7739' - marc_type: normarc + marc_field: 952e + marc_type: marc21 sort: ~ suggestible: '' + type: '' + arl: + label: arl + mappings: - facet: '' - marc_field: '4619' - marc_type: unimarc + marc_field: 526c + marc_type: marc21 sort: ~ suggestible: '' - type: number - Local-number: - label: Local-number + type: '' + arp: + label: arp mappings: - facet: '' - marc_field: 999c + marc_field: 526d marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: 999c + type: '' + author: + label: author + mappings: + - facet: '1' + marc_field: 100a + marc_type: marc21 + sort: ~ + suggestible: '1' + - facet: '1' + marc_field: 110a + marc_type: marc21 + sort: ~ + suggestible: '1' + - facet: '1' + marc_field: 111a + marc_type: marc21 + sort: ~ + suggestible: '1' + - facet: 0 + marc_field: 245c + marc_type: marc21 + sort: ~ + suggestible: 0 + - facet: 1 + marc_field: 700a + marc_type: marc21 + sort: ~ + suggestible: 1 + - facet: '1' + marc_field: 100a marc_type: normarc sort: ~ - suggestible: '' - - facet: '' - marc_field: '001' + suggestible: '1' + - facet: '1' + marc_field: 110a + marc_type: normarc + sort: ~ + suggestible: '1' + - facet: '1' + marc_field: 111a + marc_type: normarc + sort: ~ + suggestible: '1' + - facet: 0 + marc_field: 245c + marc_type: normarc + sort: ~ + suggestible: 0 + - facet: 1 + marc_field: 700a + marc_type: normarc + sort: ~ + suggestible: 1 + - facet: '1' + marc_field: 200f marc_type: unimarc sort: ~ - suggestible: '' + suggestible: '1' + - facet: '1' + marc_field: 200g + marc_type: unimarc + sort: ~ + suggestible: '1' + - facet: 1 + marc_field: 700a + marc_type: unimarc + sort: ~ + suggestible: 1 + - facet: 0 + marc_field: '701' + marc_type: unimarc + sort: ~ + suggestible: 0 type: string - acqdate: - label: acqdate + author-in-order: + label: author-in-order mappings: - facet: '' - marc_field: 952d + marc_field: 245c marc_type: marc21 - sort: 1 - suggestible: '' - - facet: '' - marc_field: 952d - marc_type: normarc - sort: 1 - suggestible: '' - - facet: '' - marc_field: '9955' - marc_type: unimarc - sort: 1 + sort: ~ suggestible: '' - type: date - an: - label: an + type: '' + author-name-corporate: + label: author-name-corporate mappings: - facet: '' - marc_field: '1009' + marc_field: '110' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '1109' + marc_field: '111' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '1119' + marc_field: '711' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '1309' + marc_field: '810' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '2459' + marc_field: '811' marc_type: marc21 sort: ~ suggestible: '' + type: '' + author-name-personal: + label: author-name-personal + mappings: - facet: '' - marc_field: '4009' + marc_field: '100' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '4109' + marc_field: '400' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '4409' + marc_field: '700' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '4909' + marc_field: '800' marc_type: marc21 sort: ~ suggestible: '' + type: '' + author-personal-bibliography: + label: author-personal-bibliography + mappings: - facet: '' - marc_field: '6009' + marc_field: 100a marc_type: marc21 sort: ~ suggestible: '' + type: '' + author-title: + label: author-title + mappings: - facet: '' - marc_field: '6109' + marc_field: '100' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6119' + marc_field: '110' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6309' + marc_field: '111' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6509' + marc_field: 400t marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6519' + marc_field: 410t marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6529' + marc_field: 411t marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6539' + marc_field: 700t marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6549' + marc_field: 710t marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6559' + marc_field: 711t marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6569' + marc_field: 800t marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6579' + marc_field: 810t marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6909' + marc_field: 811t marc_type: marc21 sort: ~ suggestible: '' + type: '' + barcode: + label: barcode + mappings: - facet: '' - marc_field: '7009' + marc_field: 952p marc_type: marc21 sort: ~ suggestible: '' + type: '' + bgf-number: + label: bgf-number + mappings: - facet: '' - marc_field: '7109' + marc_field: '015' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7119' - marc_type: marc21 + marc_field: '015' + marc_type: normarc sort: ~ suggestible: '' + type: '' + bib-level: + label: bib-level + mappings: - facet: '' - marc_field: '7309' + marc_field: leader_/7 marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7519' - marc_type: marc21 + marc_field: leader_/7 + marc_type: normarc sort: ~ suggestible: '' + type: '' + biblioitemnumber: + label: biblioitemnumber + mappings: - facet: '' - marc_field: '8009' + marc_field: 999d marc_type: marc21 sort: ~ suggestible: '' + type: '' + bio: + label: bio + mappings: - facet: '' - marc_field: '8109' + marc_field: '008_/34' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '8119' - marc_type: marc21 + marc_field: '008_/34' + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '8309' - marc_type: marc21 + marc_field: 105a_/12 + marc_type: unimarc sort: ~ suggestible: '' + type: '' + bnb-card-number: + label: bnb-card-number + mappings: - facet: '' - marc_field: '1009' - marc_type: normarc + marc_field: '015' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: '1109' - marc_type: normarc + type: '' + ccode: + label: collection-code + mappings: + - facet: '1' + marc_field: '9528' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: '1119' + - facet: '1' + marc_field: '9528' marc_type: normarc sort: ~ suggestible: '' - - facet: '' - marc_field: '1309' - marc_type: normarc + - facet: '1' + marc_field: '9958' + marc_type: unimarc sort: ~ suggestible: '' + type: '' + classification-source: + label: classification-source + mappings: - facet: '' - marc_field: '2459' - marc_type: normarc + marc_field: '9522' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cn-bib-sort: + label: cn-bib-sort + mappings: - facet: '' - marc_field: '4409' - marc_type: normarc + marc_field: '9426' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cn-bib-source: + label: cn-bib-source + mappings: - facet: '' - marc_field: '4909' - marc_type: normarc + marc_field: '9422' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cn-class: + label: cn-class + mappings: - facet: '' - marc_field: '6009' - marc_type: normarc + marc_field: 942h + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cn-item: + label: cn-item + mappings: - facet: '' - marc_field: '6109' - marc_type: normarc + marc_field: 942i + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cn-prefix: + label: cn-prefix + mappings: - facet: '' - marc_field: '6119' - marc_type: normarc + marc_field: 942k + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cn-sort: + label: cn-sort + mappings: - facet: '' - marc_field: '6309' - marc_type: normarc + marc_field: '9526' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cn-suffix: + label: cn-suffix + mappings: - facet: '' - marc_field: '6509' - marc_type: normarc + marc_field: 942m + marc_type: marc21 sort: ~ suggestible: '' + type: '' + code-geographic: + label: code-geographic + mappings: - facet: '' - marc_field: '6519' - marc_type: normarc + marc_field: '043' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + code-institution: + label: code-institution + mappings: - facet: '' - marc_field: '6529' - marc_type: normarc - sort: ~ - suggestible: '' - - facet: '' - marc_field: '6539' - marc_type: normarc - sort: ~ - suggestible: '' - - facet: '' - marc_field: '6549' - marc_type: normarc + marc_field: '040' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + coded-location-qualifier: + label: coded-location-qualifier + mappings: - facet: '' - marc_field: '6559' - marc_type: normarc + marc_field: 952f + marc_type: marc21 sort: ~ suggestible: '' + type: '' + coden: + label: coden + mappings: - facet: '' - marc_field: '6569' - marc_type: normarc + marc_field: '030' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + conference-name: + label: conference-name + mappings: - facet: '' - marc_field: '6579' - marc_type: normarc + marc_field: '111' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6909' - marc_type: normarc + marc_field: '411' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7009' - marc_type: normarc + marc_field: '611' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7109' - marc_type: normarc + marc_field: '711' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7119' - marc_type: normarc + marc_field: '811' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + control-number: + label: control-number + mappings: - facet: '' - marc_field: '7309' - marc_type: normarc + marc_field: '001' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '8009' + marc_field: '001' marc_type: normarc sort: ~ suggestible: '' - - facet: '' - marc_field: '8109' - marc_type: normarc + type: '' + copydate: + label: copydate + mappings: + - facet: '1' + marc_field: 260c + marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: '8119' + - facet: '1' + marc_field: 260c marc_type: normarc sort: ~ suggestible: '' + type: date + copynumber: + label: copynumber + mappings: - facet: '' - marc_field: '8309' - marc_type: normarc + marc_field: 952t + marc_type: marc21 sort: ~ suggestible: '' + type: '' + corporate-name: + label: corporate-name + mappings: - facet: '' - marc_field: '5009' - marc_type: unimarc + marc_field: '110' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5019' - marc_type: unimarc + marc_field: '410' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5039' - marc_type: unimarc + marc_field: '610' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5109' - marc_type: unimarc + marc_field: '710' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5129' - marc_type: unimarc + marc_field: '810' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cross-reference: + label: cross-reference + mappings: - facet: '' - marc_field: '5139' - marc_type: unimarc + marc_field: '1009' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5149' - marc_type: unimarc + marc_field: '2459' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5159' - marc_type: unimarc + marc_field: '7009' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + ctype: + label: ctype + mappings: - facet: '' - marc_field: '5169' - marc_type: unimarc + marc_field: '008_/24-27' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5179' - marc_type: unimarc + marc_field: '008_/24-27' + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '5189' + marc_field: 105a_/4-7 marc_type: unimarc sort: ~ suggestible: '' + type: '' + curriculum: + label: curriculum + mappings: - facet: '' - marc_field: '5199' - marc_type: unimarc + marc_field: 658abc + marc_type: marc21 sort: ~ suggestible: '' + type: '' + damaged: + label: damaged + mappings: - facet: '' - marc_field: '5209' - marc_type: unimarc + marc_field: '9524' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + date-entered-on-file: + label: date-entered-on-file + mappings: - facet: '' - marc_field: '5309' - marc_type: unimarc + marc_field: '008_/1-5' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5319' - marc_type: unimarc + marc_field: '008_/1-5' + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '5329' + marc_field: '099c' marc_type: unimarc sort: ~ suggestible: '' + type: '' + date-of-acquisition: + label: date-of-acquisition + mappings: - facet: '' - marc_field: '5409' - marc_type: unimarc - sort: ~ + marc_field: 952d + marc_type: marc21 + sort: 1 suggestible: '' - facet: '' - marc_field: '5419' - marc_type: unimarc - sort: ~ + marc_field: 952d + marc_type: normarc + sort: 1 suggestible: '' - facet: '' - marc_field: '5459' + marc_field: '9955' marc_type: unimarc - sort: ~ + sort: 1 suggestible: '' + type: date + date-time-last-modified: + label: date-time-last-modified + mappings: - facet: '' - marc_field: '5609' - marc_type: unimarc + marc_field: '005' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6009' + marc_field: '099d' marc_type: unimarc sort: ~ suggestible: '' + type: '' + datelastborrowed: + label: datelastborrowed + mappings: - facet: '' - marc_field: '6019' - marc_type: unimarc + marc_field: 952s + marc_type: marc21 sort: ~ suggestible: '' + type: '' + datelastseen: + label: datelastseen + mappings: - facet: '' - marc_field: '6029' - marc_type: unimarc + marc_field: 952r + marc_type: marc21 sort: ~ suggestible: '' + type: '' + dewey-classification: + label: dewey-classification + mappings: - facet: '' - marc_field: '6049' - marc_type: unimarc + marc_field: '082' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + dissertation-information: + label: dissertation-information + mappings: - facet: '' - marc_field: '6059' - marc_type: unimarc + marc_field: '502' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + editor: + label: editor + mappings: - facet: '' - marc_field: '6069' - marc_type: unimarc + marc_field: '700' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6079' - marc_type: unimarc + marc_field: 100a + marc_type: marc21 sort: ~ suggestible: '' + type: '' + extent: + label: extent + mappings: - facet: '' - marc_field: '6089' - marc_type: unimarc + marc_field: '300' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + ff7-00: + label: ff7-00 + mappings: - facet: '' - marc_field: '6109' - marc_type: unimarc + marc_field: 007_/1 + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6159' - marc_type: unimarc + marc_field: 007_/1 + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff7-01: + label: ff7-01 + mappings: - facet: '' - marc_field: '6169' - marc_type: unimarc + marc_field: 007_/2 + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6179' - marc_type: unimarc + marc_field: 007_/2 + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff7-01-02: + label: ff7-01-02 + mappings: - facet: '' - marc_field: '6209' - marc_type: unimarc + marc_field: 007_/1-2 + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6219' - marc_type: unimarc + marc_field: 007_/1-2 + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff7-02: + label: ff7-02 + mappings: - facet: '' - marc_field: '7009' - marc_type: unimarc + marc_field: 007_/3 + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7019' - marc_type: unimarc + marc_field: 007_/3 + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff8-23: + label: ff8-23 + mappings: - facet: '' - marc_field: '7029' - marc_type: unimarc + marc_field: '008_/23' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7109' - marc_type: unimarc + marc_field: '008_/23' + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff8-29: + label: ff8-29 + mappings: - facet: '' - marc_field: '7119' - marc_type: unimarc + marc_field: '008_/29' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7129' - marc_type: unimarc + marc_field: '008_/29' + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '7169' + marc_field: 105a_/8 marc_type: unimarc sort: ~ suggestible: '' + type: '' + geographic-class: + label: geographic-class + mappings: - facet: '' - marc_field: '7209' - marc_type: unimarc + marc_field: '052' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: '7219' - marc_type: unimarc + type: '' + holdingbranch: + label: holdinglibrary + mappings: + - facet: '1' + marc_field: 952b + marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: '7229' - marc_type: unimarc + - facet: '1' + marc_field: 952b + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '7309' + marc_field: 995c marc_type: unimarc sort: ~ suggestible: '' - type: number - author: - label: author + type: string + homebranch: + label: homelibrary mappings: - facet: '1' - marc_field: 100a + marc_field: 952a marc_type: marc21 sort: ~ - suggestible: '1' + suggestible: '' - facet: '1' - marc_field: 110a - marc_type: marc21 + marc_field: 952a + marc_type: normarc sort: ~ - suggestible: '1' + suggestible: '' - facet: '1' - marc_field: 111a - marc_type: marc21 + marc_field: 995b + marc_type: unimarc sort: ~ - suggestible: '1' - - facet: 0 - marc_field: 245c + suggestible: '' + type: string + host-item: + label: host-item + mappings: + - facet: '' + marc_field: 773at marc_type: marc21 - sort: 0 - suggestible: 0 - - facet: 1 - marc_field: 700a + sort: ~ + suggestible: '' + type: '' + host-item-number: + label: host-item-number + mappings: + - facet: '' + marc_field: '7739' marc_type: marc21 - sort: 0 - suggestible: 1 - - facet: '1' - marc_field: 100a + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7739' marc_type: normarc sort: ~ - suggestible: '1' - - facet: '1' - marc_field: 110a + suggestible: '' + - facet: '' + marc_field: '4619' + marc_type: unimarc + sort: ~ + suggestible: '' + type: number + identifier-other: + label: identifier-other + mappings: + - facet: '' + marc_field: 024aa + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + identifier-publisher-for-music: + label: identifier-publisher-for-music + mappings: + - facet: '' + marc_field: '028' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + identifier-standard: + label: identifier-standard + mappings: + - facet: '' + marc_field: '010' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '011' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '015' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '017' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '018' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 020a + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 022a + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '010' marc_type: normarc sort: ~ - suggestible: '1' - - facet: '1' - marc_field: 111a + suggestible: '' + - facet: '' + marc_field: '015' marc_type: normarc sort: ~ - suggestible: '1' - - facet: 0 - marc_field: 245c + suggestible: '' + - facet: '' + marc_field: 020a marc_type: normarc - sort: 0 - suggestible: 0 - - facet: 1 - marc_field: 700a + sort: ~ + suggestible: '' + - facet: '' + marc_field: 022a marc_type: normarc - sort: 0 - suggestible: 1 - - facet: '1' - marc_field: 200f - marc_type: unimarc sort: ~ - suggestible: '1' - - facet: '1' - marc_field: 200g + suggestible: '' + - facet: '' + marc_field: 010az marc_type: unimarc sort: ~ - suggestible: '1' - - facet: 1 - marc_field: 700a - marc_type: unimarc - sort: 0 - suggestible: 1 - - facet: 0 - marc_field: '701' + suggestible: '' + - facet: '' + marc_field: 011ayz marc_type: unimarc - sort: 0 - suggestible: 0 - type: string - bgf-number: - label: bgf-number + sort: ~ + suggestible: '' + type: '' + index-term-genre: + label: index-term-genre mappings: - facet: '' - marc_field: '015' + marc_field: 655a marc_type: marc21 sort: ~ suggestible: '' + type: '' + index-term-uncontrolled: + label: index-term-uncontrolled + mappings: - facet: '' - marc_field: '015' - marc_type: normarc + marc_field: 653a + marc_type: marc21 sort: ~ suggestible: '' type: '' - bib-level: - label: bib-level + indexed-by: + label: indexed-by mappings: - facet: '' - marc_field: leader_/7 + marc_field: '510' marc_type: marc21 sort: ~ suggestible: '' + type: '' + interest-age-level: + label: interest-age-level + mappings: - facet: '' - marc_field: leader_/7 - marc_type: normarc + marc_field: 521a + marc_type: marc21 sort: ~ suggestible: '' type: '' - bio: - label: bio + interest-grade-level: + label: interest-grade-level mappings: - facet: '' - marc_field: 008_/34 + marc_field: 521a + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + isbn: + label: isbn + mappings: + - facet: '' + marc_field: 020a marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/34 + marc_field: 020a marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: 105a_/12 + marc_field: 010az marc_type: unimarc sort: ~ suggestible: '' type: '' - bnb-card-number: - label: bnb-card-number + issn: + label: issn mappings: - facet: '' - marc_field: '015' + marc_field: 022a marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '015' + marc_field: 022a marc_type: normarc sort: ~ suggestible: '' + - facet: '' + marc_field: 011ayz + marc_type: unimarc + sort: ~ + suggestible: '' type: '' - ccode: - label: collection-code + issues: + label: issues mappings: - - facet: '1' - marc_field: '9528' - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '1' - marc_field: '9528' - marc_type: normarc - sort: ~ - suggestible: '' - - facet: '1' - marc_field: '9958' - marc_type: unimarc - sort: ~ - suggestible: '' - type: '' - control-number: - label: control-number + - facet: '' + marc_field: 952l + marc_type: marc21 + sort: 1 + suggestible: '' + - facet: '' + marc_field: 952l + marc_type: normarc + sort: 1 + suggestible: '' + type: sum + itemnumber: + label: itemnumber mappings: - facet: '' - marc_field: '001' + marc_field: '9529' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '001' + marc_field: '9529' + marc_type: normarc + sort: ~ + suggestible: '' + - facet: '' + marc_field: '9959' + marc_type: unimarc + sort: ~ + suggestible: '' + type: number + itemtype: + label: itemtype + mappings: + - facet: '' + marc_field: 942c + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + itype: + label: itype + mappings: + - facet: '1' + marc_field: 942c + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 952y + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 942c + marc_type: normarc + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 952y marc_type: normarc sort: ~ suggestible: '' - type: '' - copydate: - label: copydate - mappings: - - facet: '1' - marc_field: 260c + - facet: '1' + marc_field: 200b + marc_type: unimarc + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 995r + marc_type: unimarc + sort: ~ + suggestible: '' + type: string + koha-auth-number: + label: koha-auth-number + mappings: + - facet: '' + marc_field: '1009' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '1109' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '1119' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '1309' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '2459' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '4009' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '4109' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '4409' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '4909' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6009' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6109' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6119' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6309' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6489' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6509' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6519' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6529' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6539' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6549' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6559' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6569' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6579' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6629' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6909' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6919' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6969' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6979' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6989' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '6999' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7009' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7109' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7119' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7309' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7519' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7969' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7979' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7989' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '7999' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '8009' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '8109' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '8119' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '8309' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '8969' marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 260c - marc_type: normarc + - facet: '' + marc_field: '8979' + marc_type: marc21 sort: ~ suggestible: '' - type: date - ctype: - label: ctype - mappings: - facet: '' - marc_field: 008_/24-27 + marc_field: '8989' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/24-27 - marc_type: normarc + marc_field: '8999' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + language-original: + label: language-original + mappings: - facet: '' - marc_field: 105a_/4-7 - marc_type: unimarc + marc_field: 041h + marc_type: marc21 sort: ~ suggestible: '' type: '' - date-entered-on-file: - label: date-entered-on-file + lc-call-number: + label: lc-call-number mappings: - facet: '' - marc_field: 008_/1-5 + marc_field: 050b marc_type: marc21 sort: ~ suggestible: '' + type: '' + lc-card-number: + label: lc-card-number + mappings: - facet: '' - marc_field: 008_/1-5 - marc_type: normarc + marc_field: '010' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 099c - marc_type: unimarc + marc_field: '011' + marc_type: marc21 sort: ~ suggestible: '' - type: '' - date-time-last-modified: - label: date-time-last-modified - mappings: - facet: '' - marc_field: '005' - marc_type: marc21 + marc_field: '010' + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: 099d + marc_field: 995j marc_type: unimarc sort: ~ suggestible: '' type: '' - ff7-00: - label: ff7-00 + lexile-number: + label: lexile-number mappings: - facet: '' - marc_field: 007_/1 + marc_field: 521a marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: 007_/1 - marc_type: normarc - sort: ~ - suggestible: '' type: '' - ff7-01: - label: ff7-01 + lf: + label: lf mappings: - facet: '' - marc_field: 007_/2 + marc_field: '008_/33' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 007_/2 + marc_field: '008_/33' marc_type: normarc sort: ~ suggestible: '' + - facet: '' + marc_field: 105a_/11 + marc_type: unimarc + sort: ~ + suggestible: '' type: '' - ff7-01-02: - label: ff7-01-02 + llength: + label: llength mappings: - facet: '' - marc_field: 007_/1-2 + marc_field: leader_/1-5 marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 007_/1-2 + marc_field: leader_/1-5 marc_type: normarc sort: ~ suggestible: '' type: '' - ff7-02: - label: ff7-02 + ln: + label: ln mappings: - facet: '' - marc_field: 007_/3 + marc_field: '008_/35-37' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 007_/3 + marc_field: '008_/35-37' marc_type: normarc sort: ~ suggestible: '' + - facet: '' + marc_field: 101a + marc_type: unimarc + sort: ~ + suggestible: '' type: '' - ff8-23: - label: ff8-23 + ln-audio: + label: ln-audio mappings: - facet: '' - marc_field: 008_/23 + marc_field: 041a marc_type: marc21 sort: ~ suggestible: '' + type: '' + ln-subtitle: + label: ln-subtitle + mappings: - facet: '' - marc_field: 008_/23 - marc_type: normarc + marc_field: 041j + marc_type: marc21 sort: ~ suggestible: '' type: '' - ff8-29: - label: ff8-29 + local-classification: + label: local-classification mappings: - facet: '' - marc_field: 008_/29 + marc_field: 952o marc_type: marc21 sort: ~ - suggestible: '' + suggestible: '1' - facet: '' - marc_field: 008_/29 + marc_field: 952o marc_type: normarc sort: ~ - suggestible: '' + suggestible: '1' - facet: '' - marc_field: 105a_/8 + marc_field: '686' marc_type: unimarc sort: ~ suggestible: '' + - facet: '' + marc_field: 995k + marc_type: unimarc + sort: ~ + suggestible: '1' type: '' - holdingbranch: - label: HoldingLibrary + local-number: + label: local-number mappings: - - facet: '1' - marc_field: 952b + - facet: '' + marc_field: 999c marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 952b + - facet: '' + marc_field: 999c marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: 995c + marc_field: '001' marc_type: unimarc sort: ~ suggestible: '' type: string - homebranch: - label: HomeLibrary + location: + label: location mappings: - facet: '1' - marc_field: 952a + marc_field: 952c marc_type: marc21 sort: ~ suggestible: '' - facet: '1' - marc_field: 952a + marc_field: 952c marc_type: normarc sort: ~ suggestible: '' - facet: '1' - marc_field: 995b + marc_field: 995e marc_type: unimarc sort: ~ suggestible: '' - type: string - identifier-standard: - label: identifier-standard + type: '' + lost: + label: lost mappings: - facet: '' - marc_field: '010' + marc_field: '9521' marc_type: marc21 sort: ~ suggestible: '' + type: '' + map-scale: + label: map-scale + mappings: - facet: '' - marc_field: '011' + marc_field: '034' marc_type: marc21 sort: ~ suggestible: '' + type: '' + material-type: + label: material-type + mappings: - facet: '' - marc_field: '015' + marc_field: '007' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '017' - marc_type: marc21 + marc_field: '007' + marc_type: normarc sort: ~ suggestible: '' + type: '' + materials-specified: + label: materials-specified + mappings: - facet: '' - marc_field: '018' + marc_field: '9523' marc_type: marc21 sort: ~ suggestible: '' + type: '' + microform-generation: + label: microform-generation + mappings: - facet: '' - marc_field: 020a + marc_field: 007_/11 marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 022a - marc_type: marc21 + marc_field: 007_/11 + marc_type: normarc sort: ~ suggestible: '' + type: '' + music-key: + label: music-key + mappings: - facet: '' - marc_field: '010' - marc_type: normarc + marc_field: 130r + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '015' - marc_type: normarc + marc_field: 240r + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 020a - marc_type: normarc + marc_field: 243r + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 022a - marc_type: normarc + marc_field: 630r + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 010az - marc_type: unimarc + marc_field: 700r + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 011ayz - marc_type: unimarc + marc_field: 730r + marc_type: marc21 sort: ~ suggestible: '' type: '' - isbn: - label: isbn + nal-call-number: + label: nal-call-number mappings: - facet: '' - marc_field: 020a + marc_field: '070' marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: 020a - marc_type: normarc - sort: ~ - suggestible: '' - - facet: '' - marc_field: 010az - marc_type: unimarc - sort: ~ - suggestible: '' type: '' - issn: - label: issn + name: + label: name mappings: - facet: '' - marc_field: 022a + marc_field: '100' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 022a - marc_type: normarc + marc_field: '110' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 011ayz - marc_type: unimarc + marc_field: '111' + marc_type: marc21 sort: ~ suggestible: '' - type: '' - issues: - label: issues - mappings: - facet: '' - marc_field: 952l + marc_field: '400' marc_type: marc21 - sort: 1 + sort: ~ suggestible: '' - facet: '' - marc_field: 952l - marc_type: normarc - sort: 1 + marc_field: 600a + marc_type: marc21 + sort: ~ suggestible: '' - type: sum - itemnumber: - label: itemnumber - mappings: - facet: '' - marc_field: '9529' + marc_field: '610' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '9529' - marc_type: normarc + marc_field: '611' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '9959' - marc_type: unimarc + marc_field: '700' + marc_type: marc21 sort: ~ suggestible: '' - type: number - itype: - label: itype - mappings: - - facet: '1' - marc_field: 942c + - facet: '' + marc_field: '710' marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 952y + - facet: '' + marc_field: '711' marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 942c - marc_type: normarc + - facet: '' + marc_field: '800' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 952y - marc_type: normarc + - facet: '' + marc_field: '810' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 200b - marc_type: unimarc + - facet: '' + marc_field: '811' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 995r - marc_type: unimarc + type: '' + name-and-title: + label: name-and-title + mappings: + - facet: '' + marc_field: '100' + marc_type: marc21 sort: ~ suggestible: '' - type: string - lc-cardnumber: - label: lc-cardnumber - mappings: - facet: '' - marc_field: '010' + marc_field: '110' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '011' + marc_field: '111' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '010' - marc_type: normarc + marc_field: 400at + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 995j - marc_type: unimarc + marc_field: 410a + marc_type: marc21 sort: ~ suggestible: '' - type: '' - lf: - label: lf - mappings: - facet: '' - marc_field: 008_/33 + marc_field: 411a marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/33 - marc_type: normarc + marc_field: 600at + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 105a_/11 - marc_type: unimarc + marc_field: 610at + marc_type: marc21 sort: ~ suggestible: '' - type: '' - llength: - label: llength - mappings: - facet: '' - marc_field: leader_/1-5 + marc_field: 611at marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: leader_/1-5 - marc_type: normarc + marc_field: 700t + marc_type: marc21 sort: ~ suggestible: '' - type: '' - ln: - label: ln - mappings: - facet: '' - marc_field: 008_/35-37 + marc_field: 710at marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/35-37 - marc_type: normarc + marc_field: 711a + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 101a - marc_type: unimarc + marc_field: 800at + marc_type: marc21 sort: ~ suggestible: '' - type: '' - local-classification: - label: local-classification - mappings: - facet: '' - marc_field: 952o + marc_field: 810at marc_type: marc21 sort: ~ - suggestible: '1' + suggestible: '' - facet: '' - marc_field: 952o - marc_type: normarc + marc_field: 811at + marc_type: marc21 sort: ~ - suggestible: '1' + suggestible: '' + type: '' + name-geographic: + label: name-geographic + mappings: - facet: '' - marc_field: '686' - marc_type: unimarc + marc_field: '651' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 995k - marc_type: unimarc + marc_field: 751a + marc_type: marc21 sort: ~ - suggestible: '1' + suggestible: '' type: '' - location: - label: Location + nlm-call-number: + label: nlm-call-number mappings: - - facet: '1' - marc_field: 952c + - facet: '' + marc_field: '060' marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 952c - marc_type: normarc - sort: ~ - suggestible: '' - - facet: '1' - marc_field: 995e - marc_type: unimarc + type: '' + not-onloan-count: + label: not-onloan-count + mappings: + - facet: '' + marc_field: 999x + marc_type: marc21 sort: ~ suggestible: '' type: '' - material-type: - label: material-type + note: + label: note mappings: - facet: '' - marc_field: '007' + marc_field: '500' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '007' - marc_type: normarc + marc_field: '505' + marc_type: marc21 sort: ~ suggestible: '' - type: '' - microform-generation: - label: microform-generation - mappings: - facet: '' - marc_field: 007_/11 + marc_field: '590' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 007_/11 - marc_type: normarc + marc_field: 952z + marc_type: marc21 sort: ~ suggestible: '' type: '' @@ -1835,6 +2409,15 @@ biblios: sort: ~ suggestible: '' type: '' + number-govt-pub: + label: number-govt-pub + mappings: + - facet: '' + marc_field: '086' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' number-legal-deposit: label: number-legal-deposit mappings: @@ -1844,6 +2427,15 @@ biblios: sort: ~ suggestible: '' type: '' + number-local-acquisition: + label: number-local-acquisition + mappings: + - facet: '' + marc_field: 952i + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' number-natl-biblio: label: number-natl-biblio mappings: @@ -1877,39 +2469,81 @@ biblios: sort: ~ suggestible: '' type: boolean + other-control-number: + label: other-control-number + mappings: + - facet: '' + marc_field: '035' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + personal-name: + label: personal-name + mappings: + - facet: '' + marc_field: '100' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '400' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 600a + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '700' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '800' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' pl: label: pl mappings: - facet: '' - marc_field: 008_/15-17 + marc_field: '008_/15-17' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/15-17 + marc_field: '008_/15-17' marc_type: normarc sort: ~ suggestible: '' type: '' - place: - label: place + price: + label: price mappings: - - facet: '1' - marc_field: 260a + - facet: '' + marc_field: 952g marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 260a - marc_type: normarc + type: '' + provider: + label: provider + mappings: + - facet: '' + marc_field: '260' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 210a - marc_type: unimarc + - facet: '' + marc_field: '264' + marc_type: marc21 sort: ~ suggestible: '' - type: string + type: '' pubdate: label: pubdate mappings: @@ -1947,18 +2581,174 @@ biblios: marc_type: unimarc sort: ~ suggestible: '' - type: string - record-source: - label: record-source + type: string + reading-grade-level: + label: reading-grade-level + mappings: + - facet: '' + marc_field: 521a + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + record-control-number: + label: record-control-number + mappings: + - facet: '' + marc_field: 770w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 772w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 773w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 774w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 775w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 776w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 777w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 780w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 785w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 787w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 800w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 810w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 811w + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 830w + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + record-source: + label: record-source + mappings: + - facet: '' + marc_field: '008_/39' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '008_/39' + marc_type: normarc + sort: ~ + suggestible: '' + type: '' + related-periodical: + label: related-periodical + mappings: + - facet: '' + marc_field: '247' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '780' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '785' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + renewals: + label: renewals + mappings: + - facet: '' + marc_field: 952m + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + replacementprice: + label: replacementprice + mappings: + - facet: '' + marc_field: 952v + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + replacementpricedate: + label: replacementpricedate + mappings: + - facet: '' + marc_field: 952w + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + report-number: + label: report-number + mappings: + - facet: '' + marc_field: '027' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + reserves: + label: reserves mappings: - facet: '' - marc_field: 008_/39 + marc_field: 952n marc_type: marc21 sort: ~ suggestible: '' + type: '' + restricted: + label: restricted + mappings: - facet: '' - marc_field: 008_/39 - marc_type: normarc + marc_field: '9525' + marc_type: marc21 sort: ~ suggestible: '' type: '' @@ -1976,54 +2766,24 @@ biblios: sort: ~ suggestible: '' type: '' - se: - label: se + stack: + label: stack mappings: - - facet: '1' - marc_field: 440a - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '1' - marc_field: 490a + - facet: '' + marc_field: 952j marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 440a - marc_type: normarc - sort: ~ - suggestible: '' - - facet: '1' - marc_field: 490a - marc_type: normarc - sort: ~ - suggestible: '' - - facet: '1' - marc_field: 225a - marc_type: unimarc - sort: ~ - suggestible: '' - type: string - su-geo: - label: su-geo + type: '' + stock-number: + label: stock-number mappings: - - facet: '1' - marc_field: 651a + - facet: '' + marc_field: '037' marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 651a - marc_type: normarc - sort: ~ - suggestible: '' - - facet: '1' - marc_field: 607a - marc_type: unimarc - sort: ~ - suggestible: '' - type: string + type: '' subject: label: subject mappings: @@ -2248,6 +3008,15 @@ biblios: sort: ~ suggestible: '1' type: string + subject-name-personal: + label: subject-name-personal + mappings: + - facet: '' + marc_field: 600a + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' suppress: label: suppress mappings: @@ -2271,12 +3040,12 @@ biblios: label: ta mappings: - facet: '' - marc_field: 008_/22 + marc_field: '008_/22' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/22 + marc_field: '008_/22' marc_type: normarc sort: ~ suggestible: '' @@ -2286,6 +3055,40 @@ biblios: sort: ~ suggestible: '' type: '' + thematic-number: + label: thematic-number + mappings: + - facet: '' + marc_field: 130n + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 240n + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 243n + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 630n + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 700n + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 730n + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' title: label: title mappings: @@ -2750,3 +3553,209 @@ biblios: sort: ~ suggestible: '' type: string + title-abbreviated: + label: title-abbreviated + mappings: + - facet: '' + marc_field: '210' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '211' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '246' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + title-collective: + label: title-collective + mappings: + - facet: '' + marc_field: '243' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + title-cover: + label: title-cover + mappings: + - facet: '' + marc_field: 245a + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + title-expanded: + label: title-expanded + mappings: + - facet: '' + marc_field: '214' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '246' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + title-former: + label: title-former + mappings: + - facet: '' + marc_field: '246' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '247' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '780' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + title-key: + label: title-key + mappings: + - facet: '' + marc_field: '222' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + title-later: + label: title-later + mappings: + - facet: '' + marc_field: '785' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + title-other-variant: + label: title-other-variant + mappings: + - facet: '' + marc_field: '212' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '247' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '740' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + title-series: + label: title-series + mappings: + - facet: '1' + marc_field: 440a + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 490a + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 440a + marc_type: normarc + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 490a + marc_type: normarc + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 225a + marc_type: unimarc + sort: ~ + suggestible: '' + type: string + title-uniform: + label: title-uniform + mappings: + - facet: '' + marc_field: '130' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '240' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: '730' + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 700t + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 710t + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + marc_field: 711t + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + totalissues: + label: totalissues + mappings: + - facet: '' + marc_field: '9420' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + udc-classification: + label: udc-classification + mappings: + - facet: '' + marc_field: '080' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + uri: + label: uri + mappings: + - facet: '' + marc_field: 952u + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + withdrawn: + label: withdrawn + mappings: + - facet: '' + marc_field: '9520' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' diff --git a/installer/data/mysql/atomicupdate/bug_19575-use-canonical-field-names-and-resolve-aliased-fields.sql b/installer/data/mysql/atomicupdate/bug_19575-use-canonical-field-names-and-resolve-aliased-fields.sql new file mode 100644 index 0000000000..3c825d64e6 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_19575-use-canonical-field-names-and-resolve-aliased-fields.sql @@ -0,0 +1,29 @@ +UPDATE `search_field` SET `name` = LOWER(name), `label` = LOWER(label); +UPDATE `search_field` SET `name` = 'date-of-publication', `label` = 'date-of-publication' WHERE `name` = 'pubdate'; +UPDATE `search_field` SET `name` = 'title-series', `label` = 'title-series' WHERE `name` = 'se'; +UPDATE `search_field` SET `name` = 'identifier-standard', `label` = 'identifier-standard' WHERE `name` = 'identifier-standard'; +UPDATE `search_field` SET `name` = 'author', `label` = 'author' WHERE `name` = 'author'; +UPDATE `search_field` SET `name` = 'control-number', `label` = 'control-number' WHERE `name` = 'control-number'; +UPDATE `search_field` SET `name` = 'place-of-publication', `label` = 'place-of-publication' WHERE `name` = 'place'; +UPDATE `search_field` SET `name` = 'date-of-acquisition', `label` = 'date-of-acquisition' WHERE `name` = 'acqdate'; +UPDATE `search_field` SET `name` = 'isbn', `label` = 'isbn' WHERE `name` = 'isbn'; +UPDATE `search_field` SET `name` = 'authority-number', `label` = 'authority-number' WHERE `name` = 'an'; +UPDATE `search_field` SET `name` = 'subject', `label` = 'subject' WHERE `name` = 'subject'; +UPDATE `search_field` SET `name` = 'publisher', `label` = 'publisher' WHERE `name` = 'publisher'; +UPDATE `search_field` SET `name` = 'record-source', `label` = 'record-source' WHERE `name` = 'record-source'; +UPDATE `search_field` SET `name` = 'title', `label` = 'title' WHERE `name` = 'title'; +UPDATE `search_field` SET `name` = 'local-classification', `label` = 'local-classification' WHERE `name` = 'local-classification'; +UPDATE `search_field` SET `name` = 'bib-level', `label` = 'bib-level' WHERE `name` = 'bib-level'; +UPDATE `search_field` SET `name` = 'microform-generation', `label` = 'microform-generation' WHERE `name` = 'microform-generation'; +UPDATE `search_field` SET `name` = 'material-type', `label` = 'material-type' WHERE `name` = 'material-type'; +UPDATE `search_field` SET `name` = 'bgf-number', `label` = 'bgf-number' WHERE `name` = 'bgf-number'; +UPDATE `search_field` SET `name` = 'number-db', `label` = 'number-db' WHERE `name` = 'number-db'; +UPDATE `search_field` SET `name` = 'number-natl-biblio', `label` = 'number-natl-biblio' WHERE `name` = 'number-natl-biblio'; +UPDATE `search_field` SET `name` = 'number-legal-deposit', `label` = 'number-legal-deposit' WHERE `name` = 'number-legal-deposit'; +UPDATE `search_field` SET `name` = 'issn', `label` = 'issn' WHERE `name` = 'issn'; +UPDATE `search_field` SET `name` = 'local-number', `label` = 'local-number' WHERE `name` = 'local-number'; +UPDATE `search_field` SET `name` = 'suppress', `label` = 'supress' WHERE `name` = 'suppress'; +UPDATE `search_field` SET `name` = 'bnb-card-number', `label` = 'bnb-card-number' WHERE `name` = 'bnb-card-number'; +UPDATE `search_field` SET `name` = 'date/time-last-modified', `label` = 'date/time-last-modified' WHERE `name` = 'date-time-last-modified'; +DELETE FROM `search_field` WHERE `name` = 'lc-cardnumber'; +DELETE FROM `search_marc_map` WHERE `id` NOT IN(SELECT `search_marc_map_id` FROM `search_marc_to_field`); diff --git a/t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t b/t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t index 865a6ce1f4..b1a132eb50 100644 --- a/t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t +++ b/t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t @@ -175,29 +175,29 @@ subtest 'build_query tests' => sub { ( undef, $query ) = $builder->build_query_compat( undef, ['Local-number:"123456"'] ); is( $query->{query}{query_string}{query}, - '(Local-number:"123456")', - "query of specific field including hyphen and quoted is not truncated" + '(local-number:"123456")', + "query of specific field including hyphen and quoted is not truncated, field name is converted to lower case" ); ( undef, $query ) = $builder->build_query_compat( undef, ['Local-number:123456'] ); is( $query->{query}{query_string}{query}, - '(Local-number:123456*)', - "query of specific field including hyphen and not quoted is truncated" + '(local-number:123456*)', + "query of specific field including hyphen and not quoted is truncated, field name is converted to lower case" ); ( undef, $query ) = $builder->build_query_compat( undef, ['Local-number.raw:123456'] ); is( $query->{query}{query_string}{query}, - '(Local-number.raw:123456*)', - "query of specific field including period and not quoted is truncated" + '(local-number.raw:123456*)', + "query of specific field including period and not quoted is truncated, field name is converted to lower case" ); ( undef, $query ) = $builder->build_query_compat( undef, ['Local-number.raw:"123456"'] ); is( $query->{query}{query_string}{query}, - '(Local-number.raw:"123456")', - "query of specific field including period and quoted is not truncated" + '(local-number.raw:"123456")', + "query of specific field including period and quoted is not truncated, field name is converted to lower case" ); ( undef, $query ) = $builder->build_query_compat( undef, ['J.R.R'] ); -- 2.11.0