authorTomas Cohen Arazi <>2014-10-29 00:07:43 (GMT)
committer Tomas Cohen Arazi <>2014-10-31 19:45:04 (GMT)
commitd4a7fa85807301ceb5268817d035235bdcf313a3 (patch) (side-by-side diff)
parenta0d1d9d198ebda382a47f402927240d9660bcb69 (diff)
Bug 13163: NORMARC DOM config missing <id> entry
This patch fixes the biblio-koha-indexdefs.xml for NORMARC, so it includes the <id> element. Because of how our DOM files work, the resulting biblio-zebra-indexdefs.xsl for NORMARC picked the whole MARC record as ID, so every time the record was edited, the id wouldn't match and a new record was created. To test: - Have a MARCXML record - run: $ xsltproc etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl the_record | less => FAIL: verify the z:id property on the <z:record> line contains all subfields concatenated - Apply the patch - re-run the xsltproc line => SUCCESS: z:id contains the 999$c number - Sign off :-D Regards Signed-off-by: Frederic Demians <> Known bug with DOM: Without <z:id> indexing biblionumber Zebra hasn't it record unique ID, and so fails to identify existing records. Works as described. 999$c is linked to biblionumber in default Normarc framework. Signed-off-by: Magnus Enger <> I have applied the patch to my production server, and at least one customer has confirmed that it fixes the problem with multiple copies of records in search results. Signed-off-by: Katrin Fischer <> Passes tests and QA script, fix matches what we have for the other MARC flavours. Signed-off-by: Tomas Cohen Arazi <>
Diffstat (more/less context) (ignore whitespace changes)
2 files changed, 2 insertions, 1 deletions
diff --git a/etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml b/etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml
index d2aef1a..5ce689f 100644
--- a/etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml
+++ b/etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<kohaidx:index_defs xmlns:kohaidx=""
+ <id>marc:datafield[@tag='999']/marc:subfield[@code='c']</id>
<!--record.abs line 64: xelm /record/leader llength:w:range(data,0,5),rtype:w:range(data,6,1),Bib-level:w:range(data,7,1)-->
<index_leader offset="0" length="5">
diff --git a/etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl b/etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl
index 064c8a8..56d006b 100644
--- a/etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl
+++ b/etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl
@@ -28,7 +28,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
<xslo:template match="marc:record">
- <xslo:variable name="idfield" select="normalize-space()"/>
+ <xslo:variable name="idfield" select="normalize-space(marc:datafield[@tag='999']/marc:subfield[@code='c'])"/>
<z:record type="update">
<xslo:attribute name="z:id">
<xslo:value-of select="$idfield"/>