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>
This commit is contained in:
parent
a0d1d9d198
commit
d4a7fa8580
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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…
Reference in New Issue