From 258dabf93bcd5b5201410d1ec550ce5d093999e1 Mon Sep 17 00:00:00 2001 From: Nick Clemens <nick@bywatersolutions.com> Date: Wed, 28 Sep 2022 19:28:53 +0000 Subject: [PATCH] Bug 13976: Zeropad populariy for Zebra searching This patch is much eased in testing by bug 31644 which will allow you to modify totalissues field via modification To test: 1 - Create a new template at Tools->Marc modification template 2 - Add action: Copy 999$c to 942$0 3 - Create a report: SELECT biblionuber FROM biblios 4 - Run report, show all, do a batch modification to all records using template above 5 - Search for 'a' (make sure you are using Zebra) 6 - Sort by popularity 7 - Note records are sorted wrong 8 - Apply patch 9 - Copy files: cp /kohadevbox/koha/etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml cp /kohadevbox/koha/etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl 10 - Restart all, reindex zebra sudo koha-rebuild-zebra -v -f kohadev 11 - Reload search results 12 - Success! Sorted correctly Bonus: Test unimarc - same changes --- etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml | 2 +- etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl | 2 +- etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml | 2 +- .../marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml b/etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml index 7b1895968b..021bfe9a98 100644 --- a/etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml +++ b/etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml @@ -1207,7 +1207,7 @@ <target_index>biblioitemnumber:s</target_index> </index_subfields> <!--record.abs line 270: melm 942$0 totalissues:n,totalissues:s--> - <index_subfields tag="942" subfields="0"> + <index_subfields tag="942" subfields="0" zeropad="1"> <target_index>totalissues:n</target_index> <target_index>totalissues:s</target_index> </index_subfields> diff --git a/etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl b/etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl index b3222fadb5..dc9e658587 100644 --- a/etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl +++ b/etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl @@ -1292,7 +1292,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) <xslo:for-each select="marc:subfield"> <xslo:if test="contains('0', @code)"> <z:index name="totalissues:n totalissues:s"> - <xslo:value-of select="."/> + <xslo:value-of select="format-number(.,"00000000000")"/> </z:index> </xslo:if> </xslo:for-each> diff --git a/etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml b/etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml index 5425bc2ba6..9849952174 100644 --- a/etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml +++ b/etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml @@ -1442,7 +1442,7 @@ <target_index>item:w</target_index> </index_data_field> <!--942$0 totalissues:n,totalissues:s--> - <index_subfields tag="942" subfields="0"> + <index_subfields tag="942" subfields="0" zeropad="1"> <target_index>totalissues:n</target_index> <target_index>totalissues:s</target_index> </index_subfields> diff --git a/etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl b/etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl index 22d902c461..79313b6c17 100644 --- a/etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl +++ b/etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl @@ -1878,7 +1878,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) <xslo:for-each select="marc:subfield"> <xslo:if test="contains('0', @code)"> <z:index name="totalissues:n totalissues:s"> - <xslo:value-of select="."/> + <xslo:value-of select="format-number(.,"00000000000")"/> </z:index> </xslo:if> </xslo:for-each> -- 2.30.2