Bug 15704: Split up Zebra indexing of RDA 264 information
authorNick Clemens <nick@bywatersolutions.com>
Mon, 18 Dec 2017 15:41:33 +0000 (15:41 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 24 Jun 2019 13:53:18 +0000 (14:53 +0100)
To test:
1 - Add a record with a unique publisher "Supercalifragilistic" in the
264 b field
2 - Search for the value
3 - Record not found
4 - Apply patch (may need ot copy the .xml file into koha install)
5 - Reindex all the things
6 - Search for the value
7 - Success!

Signed-off-by: Felicia Martin <felicia.martin@dncr.nh.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml
etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl

index b3b12a0..e194179 100644 (file)
     <target_index>pl:w</target_index>
     <target_index>Provider:w</target_index>
   </index_data_field>
+  <!-- RDA 264$a      pl:w,pl:p-->
+  <index_subfields tag="264" subfields="a">
+    <target_index>pl:w</target_index>
+    <target_index>pl:p</target_index>
+  </index_subfields>
+  <!-- RDA 264$b      Publisher:w,Publisher:p-->
+  <index_subfields tag="264" subfields="b">
+    <target_index>Publisher:w</target_index>
+    <target_index>Publisher:p</target_index>
+  </index_subfields>
+  <!-- RDA 264$c      copydate,copydate:s-->
+  <index_subfields tag="264" subfields="c">
+    <target_index>copydate:w</target_index>
+    <target_index>copydate:s</target_index>
+  </index_subfields>
   <!--Index for RDA 264 field-->
   <index_data_field tag="264">
+    <target_index>pl:w</target_index>
     <target_index>Provider:w</target_index>
   </index_data_field>
   <!--record.abs line 123: melm 300        Extent:w,Extent:p-->
index c5fed3e..8e5514a 100644 (file)
@@ -372,6 +372,29 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
       </xslo:if>
     </xslo:for-each>
   </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='264']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="pl:w pl:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('b', @code)">
+        <z:index name="Publisher:w Publisher:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('c', @code)">
+        <z:index name="copydate:w copydate:s">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='400']">
     <xslo:for-each select="marc:subfield">
       <xslo:if test="contains('a', @code)">
@@ -2069,7 +2092,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
     </z:index>
   </xslo:template>
   <xslo:template mode="index_data_field" match="marc:datafield[@tag='264']">
-    <z:index name="Provider:w">
+    <z:index name="pl:w Provider:w">
       <xslo:variable name="raw_heading">
         <xslo:for-each select="marc:subfield">
           <xslo:if test="position() &gt; 1">