Browse Source

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 <f.demians@tamil.fr>

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 <magnus@enger.priv.no>

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 <Katrin.Fischer.83@web.de>
Passes tests and QA script, fix matches what we have for the other MARC flavours.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
3.18.x
Tomás Cohen Arazi 10 years ago
parent
commit
d4a7fa8580
  1. 1
      etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml
  2. 2
      etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl

1
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="http://www.koha-community.org/schemas/index-defs"
xmlns="http://www.koha-community.org/schemas/index-defs">
<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">
<target_index>llength:w</target_index>

2
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:if>
</xslo:template>
<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"/>

Loading…
Cancel
Save