From 6120610f7ecb6a63b14e3ab910cf2a70d1c1bfbd 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 Signed-off-by: Nick Clemens --- Koha/SearchEngine/Elasticsearch.pm | 4 +- Koha/SearchEngine/Elasticsearch/QueryBuilder.pm | 158 +- Koha/SearchEngine/Elasticsearch/Search.pm | 15 +- etc/searchengine/elasticsearch/mappings.yaml | 2353 ++++++++++++++------ ...ical-field-names-and-resolve-aliased-fields.sql | 29 + .../Koha_SearchEngine_Elasticsearch_Search.t | 16 +- 6 files changed, 1835 insertions(+), 740 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 0b33c06b3b..7fa4ace299 100644 --- a/Koha/SearchEngine/Elasticsearch.pm +++ b/Koha/SearchEngine/Elasticsearch.pm @@ -407,7 +407,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 8a0ead1deb..622cc08ded 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") @@ -446,8 +449,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'; @@ -478,13 +481,13 @@ 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 = ( qw( desc desc ), qw( dsc desc ), qw( asc asc ), qw( az asc ), qw( za desc ) ); @@ -514,21 +517,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 ) = @_; @@ -541,14 +612,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}; @@ -600,12 +672,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; } @@ -794,12 +877,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 063dca306b..314d0f6e71 100644 --- a/Koha/SearchEngine/Elasticsearch/Search.pm +++ b/Koha/SearchEngine/Elasticsearch/Search.pm @@ -200,8 +200,9 @@ sub search_auth_compat { # I wonder if these should be real values defined in the mapping # rather than hard-coded conversions. + # Handle legacy nested arrays indexed with splitting enabled. - my $authid = $record->{ 'Local-number' }[0]; + my $authid = $record->{ 'local-number' }[0]; $authid = @$authid[0] if (ref $authid eq 'ARRAY'); $result{authid} = $authid; @@ -258,7 +259,7 @@ sub count_auth_use { query => { bool => { # query => { match_all => {} }, - filter => { term => { an => $authid } } + filter => { term => { 'authority-number' => $authid } } } } }; @@ -421,13 +422,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/etc/searchengine/elasticsearch/mappings.yaml b/etc/searchengine/elasticsearch/mappings.yaml index 18e63fa5e8..b963f6ab58 100644 --- a/etc/searchengine/elasticsearch/mappings.yaml +++ b/etc/searchengine/elasticsearch/mappings.yaml @@ -1,8 +1,8 @@ --- # Basic mappings from MARC fields to Elasticsearch fields. 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 @@ -15,8 +15,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 @@ -29,8 +29,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 @@ -43,8 +43,8 @@ authorities: sort: ~ suggestible: '' type: '' - Heading: - label: Heading + heading: + label: heading mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -182,8 +182,8 @@ authorities: sort: ~ suggestible: '' type: '' - Heading-Main: - label: Heading-Main + heading-main: + label: heading-main mappings: - facet: '' marc_field: 100a @@ -241,6 +241,11 @@ authorities: sort: ~ suggestible: '' - facet: '' + marc_field: 111a + marc_type: normarc + sort: ~ + suggestible: '' + - facet: '' marc_field: 130a marc_type: normarc sort: ~ @@ -319,8 +324,8 @@ authorities: sort: 1 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 @@ -333,8 +338,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 @@ -347,8 +352,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 @@ -361,8 +366,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 @@ -375,8 +380,8 @@ authorities: sort: ~ suggestible: '' type: '' - LC-card-number: - label: LC-card-number + lc-card-number: + label: lc-card-number mappings: - facet: '' marc_field: 010az @@ -389,8 +394,8 @@ authorities: sort: ~ suggestible: '' type: '' - Local-number: - label: Local-number + local-number: + label: local-number mappings: - facet: '' marc_field: '001' @@ -408,8 +413,8 @@ authorities: sort: ~ suggestible: '' type: string - Match: - label: Match + match: + label: match mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -727,8 +732,8 @@ authorities: sort: ~ suggestible: '' type: '' - Match-heading: - label: Match-heading + match-heading: + label: match-heading mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -751,8 +756,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 @@ -785,8 +790,8 @@ authorities: sort: ~ suggestible: '' type: '' - Meeting-name: - label: Meeting-name + meeting-name: + label: meeting-name mappings: - facet: '' marc_field: 111acdefghjklnpqstvxyz @@ -799,8 +804,8 @@ authorities: sort: ~ suggestible: '' type: '' - Meeting-name-heading: - label: Meeting-name-heading + meeting-name-heading: + label: meeting-name-heading mappings: - facet: '' marc_field: 111acdefghjklnpqstvxyz @@ -813,8 +818,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 @@ -827,8 +832,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 @@ -841,8 +846,8 @@ authorities: sort: ~ suggestible: '' type: '' - Personal-name: - label: Personal-name + personal-name: + label: personal-name mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -855,8 +860,8 @@ authorities: sort: ~ suggestible: '' type: '' - Personal-name-heading: - label: Personal-name-heading + personal-name-heading: + label: personal-name-heading mappings: - facet: '' marc_field: 100abcdefghjklmnopqrstvxyz @@ -869,8 +874,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 @@ -883,8 +888,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 @@ -897,8 +902,8 @@ authorities: sort: ~ suggestible: '' type: '' - Record-source: - label: Record-source + record-source: + label: record-source mappings: - facet: '' marc_field: 040acd @@ -911,8 +916,8 @@ authorities: sort: ~ suggestible: '' type: '' - See-also-from: - label: See-also-from + see-also-from: + label: see-also-from mappings: - facet: '' marc_field: 500abcdefghjklmnopqrstvxyz @@ -1015,8 +1020,8 @@ authorities: sort: ~ suggestible: '' type: '' - See-from: - label: See-from + see-from: + label: see-from mappings: - facet: '' marc_field: 400abcdefghjklmnopqrstvxyz @@ -1029,42 +1034,7 @@ authorities: sort: ~ suggestible: '' - facet: '' - marc_field: 411abcdefghjklmnopqrstvxyz - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '' - marc_field: 430abcdefghklmnoprstvxyz - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '' - marc_field: 447abcdefghjklmnopqrstvxyz - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '' - marc_field: 448abcdefghklmnoprstvxyz - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '' - marc_field: 440abcdefghjklmnopqrstvxyz - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '' - marc_field: 441abcdefghklmnoprstvxyz - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '' - marc_field: 444abcdefghjklmnopqrstvxyz - marc_type: marc21 - sort: ~ - suggestible: '' - - facet: '' - marc_field: 462abcdefghklmnoprstvxyz + marc_field: 411acdefghjklnpqstvxyz marc_type: marc21 sort: ~ suggestible: '' @@ -1119,8 +1089,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 @@ -1153,1266 +1123,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: '' - - facet: '' - marc_field: '4909' - marc_type: normarc + type: '' + cn-bib-source: + label: cn-bib-source + mappings: + - facet: '' + 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 + marc_field: '040' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + coded-location-qualifier: + label: coded-location-qualifier + mappings: - facet: '' - marc_field: '6539' - marc_type: normarc + marc_field: 952f + marc_type: marc21 sort: ~ suggestible: '' + type: '' + coden: + label: coden + mappings: - facet: '' - marc_field: '6549' - marc_type: normarc + marc_field: '030' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + conference-name: + label: conference-name + mappings: - facet: '' - marc_field: '6559' - marc_type: normarc + marc_field: '111' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6569' - marc_type: normarc + marc_field: '411' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6579' - marc_type: normarc + marc_field: '611' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6909' - marc_type: normarc + marc_field: '711' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7009' - marc_type: normarc + marc_field: '811' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + control-number: + label: control-number + mappings: - facet: '' - marc_field: '7109' - marc_type: normarc + marc_field: '001' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7119' + marc_field: '001' marc_type: normarc sort: ~ suggestible: '' - - facet: '' - marc_field: '7309' - marc_type: normarc + type: '' + copydate: + label: copydate + mappings: + - facet: '1' + marc_field: 260c + marc_type: marc21 sort: ~ suggestible: '' - - facet: '' - marc_field: '8009' + - facet: '1' + marc_field: 260c marc_type: normarc sort: ~ suggestible: '' + type: date + copynumber: + label: copynumber + mappings: - facet: '' - marc_field: '8109' - marc_type: normarc + marc_field: 952t + marc_type: marc21 sort: ~ suggestible: '' + type: '' + corporate-name: + label: corporate-name + mappings: - facet: '' - marc_field: '8119' - marc_type: normarc + marc_field: '110' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '8309' - marc_type: normarc + marc_field: '410' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5009' - marc_type: unimarc + marc_field: '610' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5019' - marc_type: unimarc + marc_field: '710' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5039' - marc_type: unimarc + marc_field: '810' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + cross-reference: + label: cross-reference + mappings: - facet: '' - marc_field: '5109' - marc_type: unimarc + marc_field: '1009' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5129' - marc_type: unimarc + marc_field: '2459' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5139' - marc_type: unimarc + marc_field: '7009' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + ctype: + label: ctype + mappings: - facet: '' - marc_field: '5149' - marc_type: unimarc + marc_field: '008_/24-27' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5159' - marc_type: unimarc + marc_field: '008_/24-27' + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '5169' + marc_field: 105a_/4-7 marc_type: unimarc sort: ~ suggestible: '' + type: '' + curriculum: + label: curriculum + mappings: - facet: '' - marc_field: '5179' - marc_type: unimarc + marc_field: 658abc + marc_type: marc21 sort: ~ suggestible: '' + type: '' + damaged: + label: damaged + mappings: - facet: '' - marc_field: '5189' - 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: '5199' - marc_type: unimarc + marc_field: '008_/1-5' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5209' - marc_type: unimarc + marc_field: '008_/1-5' + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '5309' + marc_field: '099c' marc_type: unimarc sort: ~ suggestible: '' + type: '' + date-of-acquisition: + label: date-of-acquisition + mappings: - facet: '' - marc_field: '5319' - marc_type: unimarc - sort: ~ + marc_field: 952d + marc_type: marc21 + sort: 1 suggestible: '' - facet: '' - marc_field: '5329' - marc_type: unimarc - sort: ~ + marc_field: 952d + marc_type: normarc + sort: 1 suggestible: '' - facet: '' - marc_field: '5409' + 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: '5419' - marc_type: unimarc + marc_field: '005' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '5459' + marc_field: '099d' marc_type: unimarc sort: ~ suggestible: '' + type: '' + datelastborrowed: + label: datelastborrowed + mappings: - facet: '' - marc_field: '5609' - marc_type: unimarc + marc_field: 952s + marc_type: marc21 sort: ~ suggestible: '' + type: '' + datelastseen: + label: datelastseen + mappings: - facet: '' - marc_field: '6009' - marc_type: unimarc + marc_field: 952r + marc_type: marc21 sort: ~ suggestible: '' + type: '' + dewey-classification: + label: dewey-classification + mappings: - facet: '' - marc_field: '6019' - marc_type: unimarc + marc_field: '082' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + dissertation-information: + label: dissertation-information + mappings: - facet: '' - marc_field: '6029' - marc_type: unimarc + marc_field: '502' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + editor: + label: editor + mappings: - facet: '' - marc_field: '6049' - marc_type: unimarc + marc_field: '700' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6059' - marc_type: unimarc + marc_field: 100a + marc_type: marc21 sort: ~ suggestible: '' + type: '' + extent: + label: extent + mappings: - facet: '' - marc_field: '6069' - marc_type: unimarc + marc_field: '300' + marc_type: marc21 sort: ~ suggestible: '' + type: '' + ff7-00: + label: ff7-00 + mappings: - facet: '' - marc_field: '6079' - marc_type: unimarc + marc_field: 007_/1 + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6089' - marc_type: unimarc + marc_field: 007_/1 + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff7-01: + label: ff7-01 + mappings: - facet: '' - marc_field: '6109' - marc_type: unimarc + marc_field: 007_/2 + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6159' - marc_type: unimarc + marc_field: 007_/2 + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff7-01-02: + label: ff7-01-02 + mappings: - facet: '' - marc_field: '6169' - marc_type: unimarc + marc_field: 007_/1-2 + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6179' - marc_type: unimarc + marc_field: 007_/1-2 + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff7-02: + label: ff7-02 + mappings: - facet: '' - marc_field: '6209' - marc_type: unimarc + marc_field: 007_/3 + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '6219' - marc_type: unimarc + marc_field: 007_/3 + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff8-23: + label: ff8-23 + mappings: - facet: '' - marc_field: '7009' - marc_type: unimarc + marc_field: '008_/23' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7019' - marc_type: unimarc + marc_field: '008_/23' + marc_type: normarc sort: ~ suggestible: '' + type: '' + ff8-29: + label: ff8-29 + mappings: - facet: '' - marc_field: '7029' - marc_type: unimarc + marc_field: '008_/29' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7109' - marc_type: unimarc + marc_field: '008_/29' + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '7119' + marc_field: 105a_/8 marc_type: unimarc sort: ~ suggestible: '' + type: '' + geographic-class: + label: geographic-class + mappings: - facet: '' - marc_field: '7129' - marc_type: unimarc + marc_field: '052' + marc_type: marc21 + sort: ~ + suggestible: '' + type: '' + holdingbranch: + label: holdinglibrary + mappings: + - facet: '1' + marc_field: 952b + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 952b + marc_type: normarc sort: ~ suggestible: '' - facet: '' - marc_field: '7169' + marc_field: 995c marc_type: unimarc sort: ~ suggestible: '' - - facet: '' - marc_field: '7209' + type: string + homebranch: + label: homelibrary + mappings: + - facet: '1' + marc_field: 952a + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 952a + marc_type: normarc + sort: ~ + suggestible: '' + - facet: '1' + marc_field: 995b marc_type: unimarc sort: ~ suggestible: '' + type: string + host-item: + label: host-item + mappings: - facet: '' - marc_field: '7219' - marc_type: unimarc + marc_field: 773at + marc_type: marc21 sort: ~ suggestible: '' + type: '' + host-item-number: + label: host-item-number + mappings: - facet: '' - marc_field: '7229' - marc_type: unimarc + marc_field: '7739' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '7309' + marc_field: '7739' + marc_type: normarc + sort: ~ + suggestible: '' + - facet: '' + marc_field: '4619' marc_type: unimarc sort: ~ suggestible: '' type: number - author: - label: author + identifier-other: + label: identifier-other mappings: - - facet: '1' - marc_field: 100a + - facet: '' + marc_field: 024aa marc_type: marc21 sort: ~ - suggestible: '1' - - facet: '1' - marc_field: 110a + suggestible: '' + type: '' + identifier-publisher-for-music: + label: identifier-publisher-for-music + mappings: + - facet: '' + marc_field: '028' marc_type: marc21 sort: ~ - suggestible: '1' - - facet: '1' - marc_field: 111a + suggestible: '' + type: '' + identifier-standard: + label: identifier-standard + mappings: + - facet: '' + marc_field: '010' marc_type: marc21 sort: ~ - suggestible: '1' - - facet: 0 - marc_field: 245c + suggestible: '' + - facet: '' + marc_field: '011' marc_type: marc21 - sort: 0 - suggestible: 0 - - facet: 1 - marc_field: 700a + sort: ~ + suggestible: '' + - facet: '' + marc_field: '015' marc_type: marc21 - sort: 0 - suggestible: 1 - - facet: '1' - marc_field: 100a - marc_type: normarc sort: ~ - suggestible: '1' - - facet: '1' - marc_field: 110a + 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: 'stdno' + 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: 008_/34 + marc_field: 020a + marc_type: marc21 + sort: ~ + suggestible: '' + - facet: '' + 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 + type: 'isbn' + 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: '' - type: '' - ccode: - label: collection-code + - facet: '' + marc_field: 011ayz + marc_type: unimarc + sort: ~ + suggestible: '' + type: 'stdno' + 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: '' - copydate: - label: copydate + itype: + label: itype mappings: - facet: '1' - marc_field: 260c + 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: '' + - 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: '1' - marc_field: 260c - marc_type: normarc + - facet: '' + marc_field: '8969' + marc_type: marc21 sort: ~ suggestible: '' - type: date - ctype: - label: ctype - mappings: - facet: '' - marc_field: 008_/24-27 + marc_field: '8979' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/24-27 - marc_type: normarc + marc_field: '8989' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 105a_/4-7 - marc_type: unimarc + marc_field: '8999' + marc_type: marc21 sort: ~ suggestible: '' type: '' - date-entered-on-file: - label: date-entered-on-file + language-original: + label: language-original mappings: - facet: '' - marc_field: 008_/1-5 + marc_field: 041h marc_type: marc21 sort: ~ suggestible: '' + type: '' + lc-call-number: + label: lc-call-number + mappings: - facet: '' - marc_field: 008_/1-5 - marc_type: normarc + marc_field: 050b + marc_type: marc21 sort: ~ suggestible: '' + type: '' + lc-card-number: + label: lc-card-number + mappings: - facet: '' - marc_field: 099c - marc_type: unimarc + marc_field: '010' + marc_type: marc21 sort: ~ suggestible: '' - type: '' - date-time-last-modified: - label: date-time-last-modified - mappings: - facet: '' - marc_field: '005' + marc_field: '011' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 099d + marc_field: '010' + marc_type: normarc + sort: ~ + suggestible: '' + - facet: '' + 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: 'stdno' - isbn: - label: isbn + type: '' + nal-call-number: + label: nal-call-number mappings: - facet: '' - marc_field: 020a + marc_field: '070' marc_type: marc21 sort: ~ suggestible: '' + type: '' + name: + label: name + mappings: - facet: '' - marc_field: 020a - marc_type: normarc + marc_field: '100' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 010az - marc_type: unimarc + marc_field: '110' + marc_type: marc21 sort: ~ suggestible: '' - type: 'isbn' - issn: - label: issn - mappings: - facet: '' - marc_field: 022a + marc_field: '111' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 022a - marc_type: normarc + marc_field: '400' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 011ayz - marc_type: unimarc + marc_field: 600a + marc_type: marc21 sort: ~ suggestible: '' - type: 'stdno' - issues: - label: issues - mappings: - facet: '' - marc_field: 952l + marc_field: '610' marc_type: marc21 - sort: 1 + sort: ~ suggestible: '' - facet: '' - marc_field: 952l - marc_type: normarc - sort: 1 + marc_field: '611' + marc_type: marc21 + sort: ~ suggestible: '' - type: sum - itemnumber: - label: itemnumber - mappings: - facet: '' - marc_field: '9529' + marc_field: '700' marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '9529' - marc_type: normarc + marc_field: '710' + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '9959' - marc_type: unimarc + marc_field: '711' + marc_type: marc21 sort: ~ suggestible: '' - type: number - itype: - label: itype - mappings: - - facet: '1' - marc_field: 942c + - facet: '' + marc_field: '800' marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 952y + - facet: '' + marc_field: '810' marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 942c - marc_type: normarc + - facet: '' + marc_field: '811' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 952y - marc_type: normarc + type: '' + name-and-title: + label: name-and-title + mappings: + - facet: '' + marc_field: '100' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 200b - marc_type: unimarc + - facet: '' + marc_field: '110' + marc_type: marc21 sort: ~ suggestible: '' - - facet: '1' - marc_field: 995r - marc_type: unimarc + - facet: '' + marc_field: '111' + marc_type: marc21 sort: ~ - suggestible: '' - type: string - lc-cardnumber: - label: lc-cardnumber - mappings: + suggestible: '' - facet: '' - marc_field: '010' + marc_field: 400at marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '011' + marc_field: 410a marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: '010' - marc_type: normarc + marc_field: 411a + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 995j - marc_type: unimarc + marc_field: 600at + marc_type: marc21 sort: ~ suggestible: '' - type: '' - lf: - label: lf - mappings: - facet: '' - marc_field: 008_/33 + marc_field: 610at marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/33 - marc_type: normarc + marc_field: 611at + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 105a_/11 - marc_type: unimarc + marc_field: 700t + marc_type: marc21 sort: ~ suggestible: '' - type: '' - llength: - label: llength - mappings: - facet: '' - marc_field: leader_/1-5 + marc_field: 710at marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: leader_/1-5 - marc_type: normarc + marc_field: 711a + marc_type: marc21 sort: ~ suggestible: '' - type: '' - ln: - label: ln - mappings: - facet: '' - marc_field: 008_/35-37 + marc_field: 800at marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 008_/35-37 - marc_type: normarc + marc_field: 810at + marc_type: marc21 sort: ~ suggestible: '' - facet: '' - marc_field: 101a - marc_type: unimarc + marc_field: 811at + marc_type: marc21 sort: ~ suggestible: '' type: '' - local-classification: - label: local-classification + name-geographic: + label: name-geographic mappings: - facet: '' - marc_field: 952o + marc_field: '651' marc_type: marc21 sort: ~ - suggestible: '1' - - facet: '' - marc_field: 952o - marc_type: normarc - sort: ~ - suggestible: '1' - - facet: '' - marc_field: '686' - marc_type: unimarc - 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: '' @@ -2449,6 +2993,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: @@ -2458,6 +3011,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: @@ -2491,39 +3053,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: @@ -2561,18 +3165,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: '' @@ -2590,54 +3350,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: @@ -2862,6 +3592,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: @@ -2885,12 +3624,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: '' @@ -2900,6 +3639,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: @@ -3364,3 +4137,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 5085690b19..7bdbb9e655 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