Bug 14332: Skip articles in MARC21 using indicator n.2 of field 245
Only in MARC21 is possible to use ind2 of tag 245 to skip articles. This patch is based on inserting a special template in koha-indexdefs-to-zebra.xsl With this patch you must not insert index Title:s in biblio-koha-indexdefs.xml, it is defined in koha-indexdefs-to-zebra.xsl. It is not the best setup, but I find very difficult to use biblio-koha-indexdefs.xml. To test it in a english MARC21 setup: Insert same records with titles and correct values in ind2 of 245. If you have articles not in the skiping list of sort-string-utf.chr (The|the|a|A|an|An) you can see that the sort by articles use also articles. Insert the patch Rebuilt indexes from scratch Now all articles of titles are skipped TO TEST WITHOUT INDEXING: 1. Go to etc/zebradb/marc_defs/marc21/biblios directory. 2. Put the sample MARCXML file in this directory. 3. Transform the file into Zebra indexes: xsltproc biblio-zebra-indexdefs.xsl record.xml Observe that the Title:s index contains: 01 Business and Technologies 4. Apply the patch. 5. Repeat: xsltproc biblio-zebra-indexdefs.xsl record.xml Observe that the Title:s index contains: Business and Technologies Signed-off-by: Frederic Demians <f.demians@tamil.fr> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com> Verified working using yaz-client (as in http://wiki.koha-community.org/wiki/Understanding_Zebra_indexing#Examine_Zebra_index, though note that the `elem zebra::index` seems to be unneeded). Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
This commit is contained in:
parent
07f950082c
commit
cc878aee77
|
|
@ -389,7 +389,6 @@
|
|||
<target_index>Title-cover:s</target_index>
|
||||
<target_index>Title:w</target_index>
|
||||
<target_index>Title:p</target_index>
|
||||
<target_index>Title:s</target_index>
|
||||
</index_subfields>
|
||||
<!--record.abs line 114: melm 245$c Author,Author-in-order:w,Author-in-order:p,Author-in-order:s-->
|
||||
<index_subfields tag="245" subfields="c">
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
<xslo:template match="text()" mode="index_heading_conditional"/>
|
||||
<xslo:template match="text()" mode="index_match_heading"/>
|
||||
<xslo:template match="text()" mode="index_subject_thesaurus"/>
|
||||
<xslo:template match="text()" mode="index_sort_tit"/>
|
||||
<xslo:template match="/">
|
||||
<xslo:if test="marc:collection">
|
||||
<collection>
|
||||
|
|
@ -42,6 +43,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
<xslo:apply-templates mode="index_match_heading"/>
|
||||
<xslo:apply-templates mode="index_subject_thesaurus"/>
|
||||
<xslo:apply-templates mode="index_all"/>
|
||||
<xslo:apply-templates mode="index_sort_tit"/>
|
||||
</z:record>
|
||||
</xslo:template>
|
||||
<xslo:template match="marc:leader">
|
||||
|
|
@ -318,7 +320,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
<xslo:template mode="index_subfields" match="marc:datafield[@tag='245']">
|
||||
<xslo:for-each select="marc:subfield">
|
||||
<xslo:if test="contains('a', @code)">
|
||||
<z:index name="Title-cover:w Title-cover:p Title-cover:s Title:w Title:p Title:s">
|
||||
<z:index name="Title-cover:w Title-cover:p Title-cover:s Title:w Title:p">
|
||||
<xslo:value-of select="."/>
|
||||
</z:index>
|
||||
</xslo:if>
|
||||
|
|
@ -2464,6 +2466,19 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
<xslo:value-of select="."/>
|
||||
</z:index>
|
||||
</xslo:template>
|
||||
<xslo:template mode="index_sort_tit" match="marc:datafield[@tag='245']">
|
||||
<xslo:variable name="chop">
|
||||
<xslo:choose>
|
||||
<xslo:when test="not(number(@ind2))">0</xslo:when>
|
||||
<xslo:otherwise>
|
||||
<xslo:value-of select="number(@ind2)"/>
|
||||
</xslo:otherwise>
|
||||
</xslo:choose>
|
||||
</xslo:variable>
|
||||
<z:index name="Title:s">
|
||||
<xslo:value-of select="substring(marc:subfield[@code='a'], $chop+1)"/>
|
||||
</z:index>
|
||||
</xslo:template>
|
||||
<xslo:template name="chopPunctuation">
|
||||
<xslo:param name="chopString"/>
|
||||
<xslo:variable name="length" select="string-length($chopString)"/>
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
<xslo:template match="text()" mode="index_heading_conditional"/>
|
||||
<xslo:template match="text()" mode="index_match_heading"/>
|
||||
<xslo:template match="text()" mode="index_subject_thesaurus"/>
|
||||
<xslo:template match="text()" mode="index_sort_tit"/>
|
||||
<xslo:template match="/">
|
||||
<xslo:if test="marc:collection">
|
||||
<collection>
|
||||
|
|
@ -65,6 +66,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
<xslo:apply-templates mode="index_match_heading"/>
|
||||
<xslo:apply-templates mode="index_subject_thesaurus"/>
|
||||
<xslo:apply-templates mode="index_all"/>
|
||||
<xslo:apply-templates mode="index_sort_tit"/>
|
||||
</z:record>
|
||||
</xslo:template>
|
||||
|
||||
|
|
@ -82,6 +84,17 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
<xslo:value-of select="."/>
|
||||
</z:index>
|
||||
</xslo:template>
|
||||
<xslo:template mode="index_sort_tit" match="marc:datafield[@tag='245']">
|
||||
<xslo:variable name="chop">
|
||||
<xslo:choose>
|
||||
<xslo:when test="not(number(@ind2))">0</xslo:when>
|
||||
<xslo:otherwise><xslo:value-of select="number(@ind2)"/></xslo:otherwise>
|
||||
</xslo:choose>
|
||||
</xslo:variable>
|
||||
<z:index name="Title:s">
|
||||
<xslo:value-of select="substring(marc:subfield[@code='a'], $chop+1)"/>
|
||||
</z:index>
|
||||
</xslo:template>
|
||||
<xslo:template name="chopPunctuation">
|
||||
<xslo:param name="chopString"/>
|
||||
<xslo:variable name="length" select="string-length($chopString)"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue