With specific setup of Zebra is possible to skip articles of titles only on sorting. In MARC21 we can use indicator n. 2 of field 245. There suggestion from indexdata here: http://www.indexdata.com/zebra/doc/record-model-domxml-conf.html
Created attachment 39870 [details] [review] skip article (only marc21)
My proposal to fix the problem
Created attachment 44768 [details] One MARC21 biblio record to test the patch
Created attachment 44769 [details] [review] 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>
Created attachment 46287 [details] [review] 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).
Created attachment 46288 [details] [review] 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). (Updated commit message to include bug number.)
Pushed to Master - Should be in the May 2016 release. Thanks!
This implementation is causing some troubles because the koha-indexdefs-to-zebra.xsl is by no means MARC21-only or even biblio-only. To reproduce: - On current master, run: $ xsltproc etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml > etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl - Run: $ git diff => FAIL: The following is added to etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl, thus UNIMARC field 245 is being sent to the Title index @@ -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:controlfield[@tag='001']"> @@ -2681,6 +2683,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>
(In reply to Tomás Cohen Arazi from comment #8) > This implementation is causing some troubles because the > koha-indexdefs-to-zebra.xsl is by no means MARC21-only or even biblio-only. > > To reproduce: > - On current master, run: > $ xsltproc etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl > etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml > > etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl > - Run: > $ git diff > => FAIL: The following is added to > etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl, thus > UNIMARC field 245 is being sent to the Title index > > @@ -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:controlfield[@tag='001']"> > @@ -2681,6 +2683,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> Should this be filed as a new bug? I think it has been missed here?