From 1e4cd45bf9e617bd21e4b98f65084075d435a6d1 Mon Sep 17 00:00:00 2001 From: Andrew Morrison Date: Tue, 20 Mar 2018 17:41:38 +0000 Subject: [PATCH] New: Index variant forms of classmarks See #34 --- processing/manuscripts.xquery | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/processing/manuscripts.xquery b/processing/manuscripts.xquery index e530de4b63..bd632140a3 100644 --- a/processing/manuscripts.xquery +++ b/processing/manuscripts.xquery @@ -14,8 +14,11 @@ declare option saxon:output "indent=yes"; let $repository := normalize-space($x//tei:msDesc/tei:msIdentifier/tei:repository[1]/text()) let $institution := normalize-space($x//tei:msDesc/tei:msIdentifier/tei:institution/text()) + let $shelfmark := normalize-space($x//tei:msDesc/tei:msIdentifier/tei:idno[1]/text()) + let $normalizedshelfmark := replace($shelfmark, '\W', ' ') + let $sortshelfmark := upper-case(replace($normalizedshelfmark, '\s', '')) let $title := concat( - $x//tei:msDesc/tei:msIdentifier/tei:idno[1]/text(), + $shelfmark, ' (', $repository, if ($repository ne $institution) then @@ -23,7 +26,7 @@ declare option saxon:output "indent=yes"; else ')' ) - + (: Guide to Solr field naming conventions: ms_ = manuscript index field @@ -41,11 +44,10 @@ declare option saxon:output "indent=yes"; { $msid } { base-uri($x) } { bod:one2one($x//tei:msDesc/tei:msIdentifier/tei:collection, 'ms_collection_s', 'Not specified') } - { bod:one2one($x//tei:msDesc/tei:msIdentifier/tei:idno[@type="shelfmark"], 'ms_shelfmark_s') } - { bod:one2one($x//tei:msDesc/tei:msIdentifier/tei:idno[@type="shelfmark"], 'ms_shelfmark_sort') } - { bod:one2one($x//tei:msDesc/tei:msIdentifier/tei:idno, 'ms_shelfmark_s') } - { bod:one2one($x//tei:msDesc/tei:msIdentifier/tei:idno, 'ms_shelfmark_sort') } { bod:one2one($x//tei:msDesc/tei:msIdentifier/tei:institution, 'institution_sm', 'Not specified') } + { bod:string2one($shelfmark, 'ms_shelfmark_s') } + { bod:strings2many(($normalizedshelfmark, $sortshelfmark), 'ms_altshelfmark_sm')} + { bod:string2one($sortshelfmark, 'ms_shelfmark_sort') } { bod:one2one(($x//tei:publicationStmt/tei:pubPlace/tei:address/tei:addrLine/tei:email, $x//tei:additional/tei:adminInfo/tei:availability//tei:email)[1], 'ms_contactemail_sni') } { bod:string2one($title, 'title') } { bod:many2one($x//tei:msDesc/tei:msIdentifier/tei:repository, 'ms_repository_s') }