[Koha] Koha Digest, Vol 121, Issue 18

David Cook dcook at prosentient.com.au
Fri Nov 13 11:43:56 NZDT 2015


Hi Jesse:

I've read the response from yourself and others, and I agree with Zeno that it would be wise to open a bug on http://bugs.koha-community.org/bugzilla3/.

The reason the keyword searching works is because all text nodes in a MARC record are indexed in the "Any" (ie Keyword) index. The 880 field itself gets no special handling in the current version of biblio-zebra-indexdefs.xsl, which is why searching indexes other than Keyword doesn't work when you're searching for Arabic text stored in the 880.

In my opinion, an elegant solution could theoretically be achieved by something like the following:

<xsl:template match="marc:datafield[@tag='880']">
	<xsl:variable name="linkage" select="substring(marc:subfield[@code='6']",1,3)"/><!-- linkage might contain something like 245 or 260 or 100 -->
	<xsl:call-template name="$linkage" />
</xsl:template> 

However, we don't current use named templates in biblio-zebra-indexdefs.xsl, so that's not possible at the moment. The above is just a hypothetical suggestion that would be easier to maintain and extend.

Glancing at http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=14217, you might try something like the following in biblio-koha-indexdefs.xml in Koha 3.22:

  <index_subfields tag="880" subfields="a" condition="substring(marc:subfield[@code='6']",1,3) = 245">
    <target_index>Title-cover:w</target_index>
    <target_index>Title-cover:p</target_index>
    <target_index>Title-cover:s</target_index>
    <target_index>Title:w</target_index>
    <target_index>Title:p</target_index>
    <target_index>Title:s</target_index>
  </index_subfields>

Unfortunately, this convention requires you to make a block for every index linkage you need. That is, you'll need to do the same for 245, 260, 100, etc. It'll also be more difficult to maintain in the long-run, so it would be wise to locate the 880 near its linked field in the biblio-koha-indexdefs.xml file, so as to prevent deviations between how the fields are indexed.

Of course, since you're probably only trying to provide access to a handful of commonly used fields, this shouldn't be too laborious of a process.

It is possible to fix your situation one way or another, Jesse. XSLT is powerful and DOM indexing is quite flexible as a result.

David Cook
Systems Librarian
Prosentient Systems
72/330 Wattle St, Ultimo, NSW 2007


> -----Original Message-----
> Date: Thu, 12 Nov 2015 16:05:48 +0100
> From: Tajoli Zeno <z.tajoli at cineca.it>
> To: Jesse Lambertson <jlambertson at sqcc.org>
> Cc: "koha at lists.katipo.co.nz" <koha at lists.katipo.co.nz>
> Subject: Re: [Koha] Searching in Arabic
> Message-ID: <5644AACC.5020607 at cineca.it>
> Content-Type: text/plain; charset=utf-8; format=flowed
> 
> Hi Jesse,
> 
> 
> Il 12/11/2015 15:16, Jesse Lambertson ha scritto:
> > I think this is because 880 is not in the default indexing list.
> > It seems to me that associated linked 880 fields for title (245), author(
> > 100 and 700) as well as series (490 and 830) should return results searched
> > in Arabic as long as we add 880 to the list.
> >
> > Am I incorrect in that assumption?
> 
> No, sorry.
> You assumption is correct.
> You need to change the default indexing setup to index your 880 that are
> probably like:
> 880 10$6245-01/(3/r$a[Arabic chars]
> 
> I suggest you to open a bug here:
> http://bugs.koha-community.org/bugzilla3/
> with description of the problem and 10-20 records from your catalogue to
> do test.
> 
> Do you want to try to fix your self ?
> Well, you need to understand how indexing works with Zebra.
> 
> Start on chapter 13 of the manual:
> http://translate.koha-community.org/manual/3.20/en/searching.html
> 
> Read the basic on Zebra documentation:
> http://www.indexdata.com/zebra/doc/record-model-domxml.html
> (Tip: configuration language of the files is XSLT, so you need to learn
> a basic of it).
> 
> The 3 basic files are:
> etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml
> etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl
> etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl
> 
> The real working file is biblio-zebra-indexdefs.xsl
> In its head you can read:
> <!--
> This file has been automatically generated from a Koha index definition
> file with the stylesheet koha-indexdefs-to-zebra.xsl. Do not manually
> edit this file,as it may be overwritten. To regenerate, edit the
> appropriate Koha index definition file (probably something like
> {biblio,authority}-koha-indexdefs.xml) and run: `xsltproc
> koha-indexdefs-to-zebra.xsl {biblio,authority}-koha-indexdefs.xml >
> {biblio,authority}-zebra-indexdefs.xsl` (substituting the appropriate
> file names).
> -->
> 
> You probaly need to backport this fix from master to 3.20:
> http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=14217
> 
> and insert many condition in biblio-koha-indexdefs.xml about 880 with
> specific values in $6
> 
> Not an easy work.
> 
> Bye
> Zeno Tajoli
> 
> 
> 
> 
> 
> --
> Zeno Tajoli
> /Dipartimento Sviluppi Innovativi/ - Automazione Biblioteche
> Email: z.tajoli at cineca.it Fax: 051/6132198
> *CINECA* Consorzio Interuniversitario - Sede operativa di Segrate (MI)
> 
> 





More information about the Koha mailing list