Bug 41795: (follow-up) add a phrase Zebra index for 'authtype'

As per https://software.indexdata.com/zebra/doc/querymodel-rpn.html#querymodel-bib1-completeness:
"[...] Complete field (3) triggers search and scan in index type="p"."

The UNIMARC Zebra index definitions for authorities *do* include
a 'p' (short for 'phrase') type index for authtype -- however, the
MARC21 Zebra index definitions don't and this is causing these two
tests to fail:

t/db_dependent/Biblio.t
t/db_dependent/FrameworkPlugin.t

This patch fixes that.

Test plan for KTD:

1) Apply the patch, then:

   k$ sudo cp etc/zebradb/marc_defs/marc21/authorities/authority-koha-indexdefs.xml /etc/koha/zebradb/marc_defs/marc21/authorities/
   k$ sudo cp etc/zebradb/marc_defs/marc21/authorities/authority-zebra-indexdefs.xsl /etc/koha/zebradb/marc_defs/marc21/authorities/
   k$ koha-rebuild-zebra --authorities --full --force --verbose kohadev

2) Run these tests -- they should both complete without warnings/errors:

   k$ prove -v t/db_dependent/Biblio.t
   k$ prove -v t/db_dependent/FrameworkPlugin.t

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 6fe0b70020)
Signed-off-by: Jacob O'Mara <Jacob.omara@openfifth.co.uk>
This commit is contained in:
Andreas Roussos 2026-05-04 17:08:47 +00:00 committed by Jacob O'Mara
parent ae8e1adb74
commit 6b0593e772
No known key found for this signature in database
2 changed files with 2 additions and 1 deletions

View File

@ -643,5 +643,6 @@ authority-zebra-indexdefs.xsl`
<kohaidx:index_subfields tag="942" subfields="a">
<kohaidx:target_index>authtype:w</kohaidx:target_index>
<kohaidx:target_index>authtype:p</kohaidx:target_index>
</kohaidx:index_subfields>
</kohaidx:index_defs>

View File

@ -176,7 +176,7 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
<xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="authtype:w">
<z:index name="authtype:w authtype:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>