There should be an index including the amount of items that are available.
Created attachment 60123 [details] [review] 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 <z:index> entry for 'available' - Sign off :-D Sponsored-by: ByWater Solutions
Created attachment 60818 [details] [review] Bug 18098: Add an index with the count of not onloan items This patch adds a numeric index 'not-onloan-count' containing the value of 999$x. This subfield is filled by 'rebuild_zebra.pl' by making use of (bug's 18208) 'EmbedItemsAvailability' filter. bib1.att and indexes definitions are updated accordingly. To test: - Apply the patch - Pick the right biblio-zebra-indexdefs.xsl file for your setup and replace the one your Zebra uses [1] - Replace your bib1.att - Replace your ccl.properties - Have at least one record with more than one item, checkout some item(s) from that record(s). - Rebuild zebra's indexes: $ sudo koha-shell kohadev k$ cd kohaclone k$ misc/migration_tools/rebuild_zebra.pl -r -b -v -k (notice the dump directory is kept, you can try the XSLT yourself running: $ xsltproc \ etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl \ /tmp/the_dump_dir/biblios/exported_records | less => SUCCESS: There are records with the not-onloan-count index, and the value is correct! - Check Zebra yourself: $ yaz-client unix:/var/run/koha/kohadev/bibliosocket Z> base biblios Z> find @attr 1=9013 @attr 2=5 @attr 4=109 0 => SUCCESS: The search matches the amount of records with not-onloan items. Z> s 1+1 => SUCCESS: Records with 999$x having a value higher than 0 are rendered - Sign off :-D Note: While this work is complete on its purpose, it is part of an attempt to create a better way of filtering by availability. Sponsored-by: ByWater Solutions [1] In kohadevbox this would be /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl
Created attachment 60859 [details] [review] [SIGNED-OFF] Bug 18098: Add an index with the count of not onloan items This patch adds a numeric index 'not-onloan-count' containing the value of 999$x. This subfield is filled by 'rebuild_zebra.pl' by making use of (bug's 18208) 'EmbedItemsAvailability' filter. bib1.att and indexes definitions are updated accordingly. To test: - Apply the patch - Pick the right biblio-zebra-indexdefs.xsl file for your setup and replace the one your Zebra uses [1] - Replace your bib1.att - Replace your ccl.properties - Have at least one record with more than one item, checkout some item(s) from that record(s). - Rebuild zebra's indexes: $ sudo koha-shell kohadev k$ cd kohaclone k$ misc/migration_tools/rebuild_zebra.pl -r -b -v -k (notice the dump directory is kept, you can try the XSLT yourself running: $ xsltproc \ etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl \ /tmp/the_dump_dir/biblios/exported_records | less => SUCCESS: There are records with the not-onloan-count index, and the value is correct! - Check Zebra yourself: $ yaz-client unix:/var/run/koha/kohadev/bibliosocket Z> base biblios Z> find @attr 1=9013 @attr 2=5 @attr 4=109 0 => SUCCESS: The search matches the amount of records with not-onloan items. Z> s 1+1 => SUCCESS: Records with 999$x having a value higher than 0 are rendered - Sign off :-D Note: While this work is complete on its purpose, it is part of an attempt to create a better way of filtering by availability. Sponsored-by: ByWater Solutions [1] In kohadevbox this would be /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
QA: Looking here now
Seems to work fine (MARC21), but we still need biblio-zebra-indexdefs.xsl for unimarc and normarc. Note that 'working fine' in my case included restarting zebra and indexer.
Created attachment 63112 [details] [review] Bug 18098: Add an index with the count of not onloan items This patch adds a numeric index 'not-onloan-count' containing the value of 999$x. This subfield is filled by 'rebuild_zebra.pl' by making use of (bug's 18208) 'EmbedItemsAvailability' filter. bib1.att and indexes definitions are updated accordingly. To test: - Apply the patch - Pick the right biblio-zebra-indexdefs.xsl file for your setup and replace the one your Zebra uses [1] - Replace your bib1.att - Replace your ccl.properties - Have at least one record with more than one item, checkout some item(s) from that record(s). - Rebuild zebra's indexes: $ sudo koha-shell kohadev k$ cd kohaclone k$ misc/migration_tools/rebuild_zebra.pl -r -b -v -k (notice the dump directory is kept, you can try the XSLT yourself running: $ xsltproc \ etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl \ /tmp/the_dump_dir/biblios/exported_records | less => SUCCESS: There are records with the not-onloan-count index, and the value is correct! - Check Zebra yourself: $ yaz-client unix:/var/run/koha/kohadev/bibliosocket Z> base biblios Z> find @attr 1=9013 @attr 2=5 @attr 4=109 0 => SUCCESS: The search matches the amount of records with not-onloan items. Z> s 1+1 => SUCCESS: Records with 999$x having a value higher than 0 are rendered - Sign off :-D Note: While this work is complete on its purpose, it is part of an attempt to create a better way of filtering by availability. Sponsored-by: ByWater Solutions [1] In kohadevbox this would be /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl Edit: Added the missing XSLT changes for UNIMARC and NORMARC Signed-off-by: Josef Moravec <josef.moravec@gmail.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Pushed to master for 17.05, thanks Tomas!
This won't get ported back to 16.11.x as it is an enhancement.