From 5edb97fd914618a199e7d752a4c0c657dfe93979 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 10 Feb 2017 14:57:20 -0300 Subject: [PATCH] Bug 18098: Add an index with the count of available items This patch adds a way to specify which MARC field contains the onloan status and uses it to generate an XSLT that generates a new index for Zebra called 'available'. This index contains the amount of items that have an onloan status different than 1. The idea is to change the way we build the query on the Perl side, and just search for available > 0, taking advantage of DOM indexing capabilities. To test: - Have a marcxml record containing holdings (952/995 depending on your MARC flavour). - Run: $ xsltproc \ etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl \ your_record.marcxml => FAIL: There's no 'available' z:index. - Apply the patch - Run: $ xsltproc \ etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl \ your_record.marcxml => SUCCESS: There's a entry for 'available' - Sign off :-D Sponsored-by: ByWater Solutions --- .../marc21/biblios/biblio-koha-indexdefs.xml | 2 ++ .../marc21/biblios/biblio-zebra-indexdefs.xsl | 6 ++++++ .../normarc/biblios/biblio-koha-indexdefs.xml | 2 ++ .../normarc/biblios/biblio-zebra-indexdefs.xsl | 6 ++++++ .../unimarc/biblios/biblio-koha-indexdefs.xml | 2 ++ .../unimarc/biblios/biblio-zebra-indexdefs.xsl | 21 +++++++++++++++++++++ etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl | 20 ++++++++++++++++++++ 7 files changed, 59 insertions(+) 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 49f774aa88..5cdf64b490 100644 --- a/etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml +++ b/etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml @@ -1328,6 +1328,8 @@ Note:p + + au:0 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 5feab047fb..9596ae60c0 100644 --- a/etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl +++ b/etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl @@ -44,6 +44,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + @@ -2521,6 +2522,11 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + + + + + diff --git a/etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml b/etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml index dff2d7514e..4643cd7ae5 100644 --- a/etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml +++ b/etc/zebradb/marc_defs/normarc/biblios/biblio-koha-indexdefs.xml @@ -969,6 +969,8 @@ itype:w + + au:0 diff --git a/etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl b/etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl index 301f9a76dc..a3d5ba8e6c 100644 --- a/etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl +++ b/etc/zebradb/marc_defs/normarc/biblios/biblio-zebra-indexdefs.xsl @@ -44,6 +44,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + @@ -1861,6 +1862,11 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + + + + + 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 90e92a04d3..11800cf44c 100644 --- a/etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml +++ b/etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml @@ -1444,6 +1444,8 @@ totalissues:s + + se:0 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 32e1742804..ca12bc8448 100644 --- a/etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl +++ b/etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl @@ -17,6 +17,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + @@ -42,6 +43,8 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + + @@ -2676,11 +2679,29 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + + + + + + + + + 0 + + + + + + + + + diff --git a/etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl b/etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl index 59876caf73..18e3a6ca2d 100644 --- a/etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl +++ b/etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl @@ -67,6 +67,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + @@ -78,6 +79,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + @@ -379,6 +381,24 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml) + + + + + + + count(marc:datafield[@tag=' + + ']/marc:subfield[@code=' + + ' and not(contains(.,'1'))]) + + + + + + + -- 2.11.1