Bug 9828: More specific indexing of UNIMARC 6XX fields
authorMathieu Saby <mathieu.saby@univ-rennes2.fr>
Sat, 16 Mar 2013 18:47:20 +0000 (19:47 +0100)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Mon, 27 Oct 2014 15:46:42 +0000 (12:46 -0300)
[New commit on 18 Aug 2014 : rebased, and DOM indexing only]

Issues to fix :
Most of 6XX may contain a $2 that identifies the system used for indexing. It should not be indexed.
In French libraries, $2 contains "rameau". So searching books about the music composer "Rameau" retreive thousands of records!
For some 6XX fiels, other subfields should not be indexed, for example dates of persons and family, or adresses.
In Unimarc guide, 600$t,601$t,602$t are said to exist but to be "not used". I keep them indexed.

Additionnally, subject indexing could be improved by using specific indexes for each 6XX if possible :
In ccl.properties :
- su-to, su-geo and su-ut are defined as aliases of Subject.
- a specific index is defined, but not used in record.abs : Subject-name-personal, alias su-na
We can use these indexes and create new specific indexes by using existing bib1 attributes.

We could also index $j,$x,$y,$z subdivision in specific indexes.

This patch does the following changes :
1) For all 6XX : Not indexing $2 (LSCH, Rameau...), $3 and $5
2) Suppressing the indexing of some specific subfields, depending on the field:
600 : Personal name used as a subject // see Marc21 600
not indexing c (additional elements),f (dates),p (address/affiliation)
602 : Family name used as a subject // see Marc21 600 3X
not indexing f (dates)
616 : Trademark
not indexing c,f
3) For all 6XX : index $j,$x,$y,$z in several indexes in addition to the specfific index for their 6XX field:
4) Define in ccl.properties some specific indexes :
Subject-name-conference 1=1073 => alias su-conf
Subject-name-corporate 1=1074 => alias su-corp
Subject-genre-form 1=1075 => alias su-genre and su-form
Subject-geographical 1=1076 => alias su-geo
Subject-chronological 1=1077 => alias su-chrono
Subject-title 1=1078 => alias su-ut and su-ti
Subject-topical 1=1079 => alias su-to
5) Adding new aliases in Search.pm :
su-chrono, su-form, su-genre, su-corp, su-conf, su-ti
6) Using these new indexes in for
600 : Subject and Subject-Personal-Name ; all subfields except subdivisions in Personal-name
601 : Subject, Subject-name-conference and Subject-name-corporate and Subject-name-conf ; all subfields except subdivisions in Corporate-name and Conference-name
602 : same as 600 but could be improved later
604 : Subject and Subject-title ; $a in Subject-Personal-Name ; all subfields except subdivisions in Name-and-Title
605 : Subject and Subject-title
606 : Subject and Subject-topical
607 : Subject and Subject-geographical ; all subfields except subdivisions in Name-geographic
608 : Subject and Subject-genre-form

To test :

A. In a UNIMARC-DOM indexing environment
1) Apply the patch
2) Rebuild zebra
3) Create a record A with some values in critical fields, for example:
- the string "test9828" in 600$c 600$f 600$p, 602$f, 616$c, 616$f, 606$2,600$2
- the string "subform" in 600$j
4) Create a record B with the string "subgeo" in 606$y
5) Create a record C with the string "subdate" in 606$z
6) try to search "su:test9828". You should have no results
7) try to search "su-genre:subform". You should have 1 result : record A
8) try to search "su-geo:subgeo". You should have 1 result : record B
9) try to search "su-chrono:subdate". You should have 1 result : record C
10) on existing records, try su-ut, su-to, su-na, su-form, su-corp, su-geo indexes, and see it results are relevant

Indexing of subjects could maybe be improved later

Signed-off-by: Nick Clemens <nick@quecheelibrary.org>

All seems to work as expected, I am not super-familiar with UNIMARC but I wonder if in su-corp and su-conf the subdivisions might be useful (e.g. France-Gendarmie / Staatsbibliothek-Berlin)

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

C4/Search.pm
etc/zebradb/biblios/etc/bib1.att
etc/zebradb/ccl.properties
etc/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml
etc/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl

index 1326f69..4de0931 100644 (file)
@@ -1215,9 +1215,15 @@ sub getIndexes{
                     'Subject-subdivision',
                     'Summary',
                     'Suppress',
+                    'su-chrono',
+                    'su-corp',
+                    'su-conf',
                     'su-geo',
+                    'su-form',
+                    'su-genre',
                     'su-na',
                     'su-to',
+                    'su-ti',
                     'su-ut',
                     'ut',
                     'Term-genre-form',
index ed8c64b..bf344ce 100644 (file)
@@ -142,8 +142,8 @@ att 1071    Section-heading
 att 1072    Subject-GOO
 att 1073    Subject-name-conference
 att 1074    Subject-name-corporate
-att 1075    Subject-genre/form
-att 1076    Subject-name-gerographical
+att 1075    Subject-genre-form
+att 1076    Subject-name-geographical
 att 1077    Subject-chronological
 att 1078    Subject-title
 att 1079    Subject-topical
index 99e3498..85611d3 100644 (file)
@@ -625,9 +625,7 @@ rcn Record-control-number
 #                                                           655, 656, 657, 69X
 Subject 1=21
 su Subject
-su-to Subject
-su-geo Subject
-su-ut Subject
+
 #Subject-BDI            23  Subject headings from
 #                           Bibliotek Dokumentasjon
 #                           Informasjon -- a controlled
@@ -676,7 +674,7 @@ su-ut Subject
 #                           appears in a subject heading.
 Subject-name-personal 1=1009
 su-na 1=1009
-#Subject-name-personal
+
 #Subject-PA             26  Subject headings from           600i2, 610i2,
 #                           Thesaurus of Psychological      611i2, 630i2,
 #                           Index Terms -- maintained       650i2, 651i2
@@ -722,11 +720,43 @@ su-na 1=1009
 
 #Subject-subdivision    47  An extension to a subject       6XX$x, 6XX$y,
 #                           heading indicating the form,    6XX$z
-#                           place, period of time treated,
+#                           place, period of time treated,  UNIMARC 6XX$j
 #                           or aspect of the subject
 #                           treated.
 Subject-subdivision 1=47
 
+#Subject-name-conference 1073                              MARC21 611 ; UNIMARC 601
+Subject-name-conference 1=1073
+su-conf Subject-name-conference
+
+#Subject-name-corporate 1074                               MARC21 610 ; UNIMARC 601
+Subject-name-corporate 1=1074
+su-corp Subject-name-corporate
+
+#Subject-genre-form 1075                                   MARC21 610 ; UNIMARC 608
+#                                                          UNIMARC 6XX$j
+Subject-genre-form 1=1075
+su-genre Subject-genre-form
+su-form Subject-genre-form
+
+#Subject-geographical 1076                                 MARC21 651 ; UNIMARC 607
+#                                                          MARC21 AND UNIMARC 6XX$y
+Subject-geographical 1=1076
+su-geo Subject-geographical
+
+#Subject-chronological 1077                                MARC21 and UNIMARC 6XX$z
+Subject-chronological 1=1077
+su-chrono Subject-chronological
+
+#Subject-title 1078                                        MARC21 630 ; UNIMARC 605
+Subject-title 1=1078
+su-ut Subject-title
+su-ti Subject-title
+
+#Subject-topical 1079                                      MARC21 650 ; UNIMARC 606
+Subject-topical 1=1079
+su-to Subject-topical
+
 #Title                   4  A word, phrase, character,      130, 21X-24X, 440,
 #                           or group of characters,         490, 730, 740, 830,
 #                           normally appearing in an item,  840, subfield $t
@@ -1218,9 +1248,6 @@ sort3 7=3
 #corporateName 1=2
 #conferenceName 1=3
 #uniformTitle 1=6
-#geographicName 1=58
-#topicalSubject 1=1079
-#genreForm 1=1075
 
 ###################################################
 # Rules for a few GILS fields
index 10dc41e..81fac14 100644 (file)
     <target_index>Title:p</target_index>
   </index_data_field>
   <!--==== 6XX BLOCK OF SUBJECTS ====-->
-  <!--600 - Personal name-->
-  <index_subfields tag="600" subfields="a">
+  <!--For all 6XX : index $j,$x,$y,$z in several indexes in addition to the specific index for their 6XX field:-->
+  <!--# 6XX$j : Genre/form                  : indexed in Subject, Subject-subdivision, Subject-genre-form-->
+  <!--# 6XX$x : Subject                     : indexed in Subject, Subject-subdivision (could be topical subject or genre/form subject, so don't index in Subject-topical)-->
+  <!--# 6XX$y : Geographical subject        : indexed in Subject, Subject-subdivision, Subject-name-geographical-->
+  <!--# 6XX$z : Chronological subject       : indexed in Subject, Subject-subdivision, Subject-chronological-->
+  <!--Index 6XX$9 only in Koha-Auth-Number-->
+  <!--record.abs line 407: melm 600$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="600" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 408: melm 601$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="601" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 409: melm 602$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="602" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 410: melm 604$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="604" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 411: melm 605$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="605" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 412: melm 606$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="606" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 413: melm 607$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="607" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 414: melm 608$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="608" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 415: melm 610$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="610" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 416: melm 615$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="615" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 417: melm 616$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="616" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 418: melm 617$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="617" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 419: melm 620$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="620" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 420: melm 621$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="621" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 426: melm 603$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="603" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 427: melm 630$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="630" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 428: melm 631$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="631" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 429: melm 632$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="632" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 430: melm 633$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="633" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 431: melm 634$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="634" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 432: melm 635$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="635" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--record.abs line 433: melm 636$9      Koha-Auth-Number,Koha-Auth-Number:n-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="636" subfields="9">
+    <target_index>Koha-Auth-Number:w</target_index>
+    <target_index>Koha-Auth-Number:n</target_index>
+  </index_subfields>
+  <!--600 : Personal name (as subject) see Marc21 600-->
+  <!--indexing a,b,d,g,t (even if t is said to be not used)-->
+  <!--not indexing c (additional elements),f (dates),p (address/affiliation),2,3,5-->
+  <!--indexing specifically $j,$x,$y,$z-->
+  <!--600$adbgt    Personal-name,Personal-name:p,Subject-name-personal:w,Subject-name-personal:p,Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="600" subfields="abdgt">
     <target_index>Personal-name:w</target_index>
     <target_index>Personal-name:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
   </index_subfields>
-  <index_subfields tag="600" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+  <!--600$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p,Subject-name-personal:w,Subject-name-personal:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="600" subfields="j">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+  </index_subfields>
+  <!--600$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-personal:w,Subject-name-personal:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="600" subfields="x">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
   </index_subfields>
-  <index_data_field tag="600">
+  <!--600$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p,Subject-name-personal:w,Subject-name-personal:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="600" subfields="y">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--601 - Corporate name-->
-  <index_subfields tag="601" subfields="a">
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+  </index_subfields>
+  <!--600$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological:p,Subject-name-personal:w,Subject-name-personal:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="600" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+  </index_subfields>
+  <!--601 : Corporate or meeting name used as a subject // see Marc21 610 & 611-->
+  <!--indicators 0X = Corporate ; 1X = Meeting-->
+  <!--indexing a,b,c,d,e,f,g,h,t (even if t is said to be not used)-->
+  <!--not indexing 2,3,5-->
+  <!--indexing specifically $j,$x,$y,$z-->
+  <!--d,e,f only used for Meetings-->
+  <!--FIXME : index separately corporate and meeting in DOM indexing?-->
+  <!--601$abcdefght    Corporate-name:w,Corporate-name:p,Conference-name:w,Conference-name:p,Subject-name-conference:w,Subject-name-conference:p,Subject-name-corporate:w,Subject-name-corporate:p,Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="601" subfields="a">
     <target_index>Corporate-name:w</target_index>
-    <target_index>Conference-name:w</target_index>
     <target_index>Corporate-name:p</target_index>
+    <target_index>Conference-name:w</target_index>
     <target_index>Conference-name:p</target_index>
+    <target_index>Subject-name-conference:w</target_index>
+    <target_index>Subject-name-conference:p</target_index>
+    <target_index>Subject-name-corporate:w</target_index>
+    <target_index>Subject-name-corporate:p</target_index>
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
   </index_subfields>
-  <index_subfields tag="601" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+  <!--601$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p,Subject-name-conference:w,Subject-name-conference:p,Subject-name-corporate:w,Subject-name-corporate:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="601" subfields="j">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+    <target_index>Subject-name-conference:w</target_index>
+    <target_index>Subject-name-conference:p</target_index>
+    <target_index>Subject-name-corporate:w</target_index>
+    <target_index>Subject-name-corporate:p</target_index>
+  </index_subfields>
+  <!--601$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-conference:w,Subject-name-conference:p,Subject-name-corporate:w,Subject-name-corporate:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="601" subfields="x">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-conference:w</target_index>
+    <target_index>Subject-name-conference:p</target_index>
+    <target_index>Subject-name-corporate:w</target_index>
+    <target_index>Subject-name-corporate:p</target_index>
+  </index_subfields>
+  <!--601$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p,Subject-name-conference:w,Subject-name-conference:p,Subject-name-corporate:w,Subject-name-corporate:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="601" subfields="y">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+    <target_index>Subject-name-conference:w</target_index>
+    <target_index>Subject-name-conference:p</target_index>
+    <target_index>Subject-name-corporate:w</target_index>
+    <target_index>Subject-name-corporate:p</target_index>
+  </index_subfields>
+  <!--601$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological:p,Subject-name-conference:w,Subject-name-conference:p,Subject-name-corporate:w,Subject-name-corporate:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="601" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:p</target_index>
+    <target_index>Subject-name-conference:w</target_index>
+    <target_index>Subject-name-conference:p</target_index>
+    <target_index>Subject-name-corporate:w</target_index>
+    <target_index>Subject-name-corporate:p</target_index>
+  </index_subfields>
+  <!--602 : Family name used as a subject // see Marc21 600 3X-->
+  <!--indexing a,t (even if t is said to be not used)-->
+  <!--not indexing f (dates), 2,3,5-->
+  <!--indexing specifically $j,$x,$y,$z-->
+  <!--FIXME Create a specific index? For the moment, index in Personal-name-->
+  <!--602$at    Subject:w,Subject:p,Subject-name-personal:w,Subject-name-personal:p,Personal-name:w,Personal-name:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="602" subfields="at">
+    <target_index>Personal-name:w</target_index>
+    <target_index>Personal-name:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
   </index_subfields>
-  <index_data_field tag="601">
+  <!--602$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p,Subject-name-personal:w,Subject-name-personal:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="602" subfields="j">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--602 - Familiy name-->
-  <index_subfields tag="602" subfields="a">
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+  </index_subfields>
+  <!--602$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-personal:w,Subject-name-personal:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="602" subfields="x">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+  </index_subfields>
+  <!--602$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p,Subject-name-personal:w,Subject-name-personal:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="602" subfields="y">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+  </index_subfields>
+  <!--602$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological:p,Subject-name-personal:w,Subject-name-personal:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="602" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+  </index_subfields>
+  <!--604 : Name and title // see Marc21 600-->
+  <!--indexing a,t-->
+  <!--not indexing 2,3,5-->
+  <!--indexing specifically $j,$x,$y,$z-->
+  <!--604$at    Name-and-title,Name-and-title:p,Subject-title:w,Subject-title:p,Personal-name,Personal-name:p,Subject-name-personal:w,Subject-name-personal:p,Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="604" subfields="at">
+    <target_index>Name-and-title:w</target_index>
+    <target_index>Name-and-title:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
     <target_index>Personal-name:w</target_index>
     <target_index>Personal-name:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
   </index_subfields>
-  <index_subfields tag="602" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+  <!--604$t    Name-and-title,Name-and-title:p,Subject-title:w,Subject-title:p,Subject-name-personal:w,Subject-name-personal:p,Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="604" subfields="t">
+    <target_index>Name-and-title:w</target_index>
+    <target_index>Name-and-title:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
+    <target_index>Subject-name-personal:w</target_index>
+    <target_index>Subject-name-personal:p</target_index>
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
   </index_subfields>
-  <index_data_field tag="602">
+  <!--604$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p,Subject-title:w,Subject-title:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="604" subfields="j">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--604 - Title and author-->
-  <index_subfields tag="604" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
+  </index_subfields>
+  <!--604$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-title:w,Subject-title:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="604" subfields="x">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
   </index_subfields>
-  <index_data_field tag="604">
+  <!--604$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p,Subject-title:w,Subject-title:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="604" subfields="y">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
+  </index_subfields>
+  <!--604$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological:p,Subject-title:w,Subject-title:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="604" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
+  </index_subfields>
+  <!--605 : Title used as subject // see Marc21 630-->
+  <!--indexing all : a,h,i,k,l,m,n,q,r,s,u,w-->
+  <!--indexing specifically $j,$x,$y,$z-->
+  <!--605$ahiklmnqrsuw    Subject-title:w,Subject-title:p,Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="605" subfields="ahiklmnqrsuw">
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-   <!--605 - Title-->
-  <index_subfields tag="605" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
   </index_subfields>
-  <index_data_field tag="605">
+  <!--605$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p,Subject-title:w,Subject-title:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="605" subfields="j">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--606 - Topic-->
-  <index_subfields tag="606" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
+  </index_subfields>
+  <!--605$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-title:w,Subject-title:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="605" subfields="x">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
   </index_subfields>
-  <index_data_field tag="606">
+  <!--605$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p,Subject-title:w,Subject-title:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="605" subfields="y">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
+  </index_subfields>
+  <!--605$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological:p,Subject-title:w,Subject-title:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="605" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:p</target_index>
+    <target_index>Subject-title:w</target_index>
+    <target_index>Subject-title:p</target_index>
+  </index_subfields>
+  <!--606 : Topical name used as subject // see Marc21 650-->
+  <!--indexing a-->
+  <!--indexing specifically $j,$x,$y,$z-->
+  <!--606$a    Subject-topical:w,Subject-topical:p,Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="606" subfields="a">
+    <target_index>Subject-topical:w</target_index>
+    <target_index>Subject-topical:p</target_index>
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--607 - Geographic-->
-  <index_subfields tag="607" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
   </index_subfields>
-  <index_data_field tag="607">
+  <!--606$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p,Subject-topical:w,Subject-topical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="606" subfields="j">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--608 - Form-Genre-->
-  <index_subfields tag="608" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+    <target_index>Subject-topical:w</target_index>
+    <target_index>Subject-topical:p</target_index>
+  </index_subfields>
+  <!--606$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-topical:w,Subject-topical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="606" subfields="x">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-topical:w</target_index>
+    <target_index>Subject-topical:p</target_index>
   </index_subfields>
-  <index_data_field tag="608">
+  <!--606$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p,Subject-topical:w,Subject-topical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="606" subfields="y">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+    <target_index>Subject-topical:w</target_index>
+    <target_index>Subject-topical:p</target_index>
+  </index_subfields>
+  <!--606$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological:p,Subject-topical:w,Subject-topical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="606" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:p</target_index>
+    <target_index>Subject-topical:w</target_index>
+    <target_index>Subject-topical:p</target_index>
+  </index_subfields>
+  <!--607 : Geographical name used as subject // see Marc21 651-->
+  <!--indexing a-->
+  <!--indexing specificly $j,$x,$y,$z-->
+  <!--607$a    Name-geographic:w,Name-geographic:p,Subject-name-geographical:w,Subject-name-geographical:p,Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="607" subfields="a">
+    <target_index>Name-geographic:w</target_index>
+    <target_index>Name-geographic:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--610 - Free-->
-  <index_subfields tag="608" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
   </index_subfields>
-  <index_data_field tag="610">
+  <!--607$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p,Subject-name-geographical:w,Subject-name-geographical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="607" subfields="j">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--615 - Category-->
-  <index_subfields tag="615" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+  </index_subfields>
+  <!--607$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="607" subfields="x">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
   </index_subfields>
-  <index_data_field tag="615">
+  <!--607$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="607" subfields="y">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--616 - Trademark-->
-  <index_subfields tag="616" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
   </index_subfields>
-  <index_data_field tag="616">
+  <!--607$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological:p,Subject-name-geographical:w,Subject-name-geographical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="607" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+  </index_subfields>
+  <!--608 : Form, Genre or Physical Characteristics Heading-->
+  <!--indexing a-->
+  <!--indexing specifically $j,$x,$y,$z-->
+  <!--608$a    Subject-genre-form:w,Subject-genre-form:p,Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="608" subfields="a">
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--617 - Hierarchical geographical name-->
-  <index_subfields tag="617" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
   </index_subfields>
-  <index_data_field tag="617">
+  <!--608$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="608" subfields="j">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--620 - Place and date access-->
-  <index_subfields tag="620" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
   </index_subfields>
-  <index_data_field tag="620">
+  <!--608$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="608" subfields="x">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
-  <!--621 - Place and date of origin-->
-  <index_subfields tag="621" subfields="9">
-    <target_index>Koha-Auth-Number:w</target_index>
-    <target_index>Koha-Auth-Number:n</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
   </index_subfields>
-  <index_data_field tag="621">
+  <!--608$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p,Subject-genre-form:w,Subject-genre-form:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="608" subfields="y">
     <target_index>Subject:w</target_index>
     <target_index>Subject:p</target_index>
-  </index_data_field>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+  </index_subfields>
+  <!--608$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological:p,Subject-genre-form:w,Subject-genre-form:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="608" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+  </index_subfields>
+  <!--610 : Uncontroled subject terms // see Marc21 653-->
+  <!--FIXME maybe to index in att 1080    Subject-uncontrolled ?-->
+  <!--610$a    Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="610" subfields="a">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+  </index_subfields>
+  <!--615 : Subject category-->
+  <!--indexing a,x,n,m-->
+  <!--not indexing 2,3-->
+  <!--FIXME Create specific index?-->
+  <!--615$axnm   Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="615" subfields="axnm">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+  </index_subfields>
+  <!--616 : Trademark-->
+  <!--indexing a-->
+  <!--not indexing c,f,2,3,5-->
+  <!--indexing specificly $j,$x,$y,$z-->
+  <!--FIXME Create specific index?-->
+  <!--melm 616$a    Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="616" subfields="a">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+  </index_subfields>
+  <!--616$j    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-genre-form:w,Subject-genre-form:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="616" subfields="j">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-genre-form:w</target_index>
+    <target_index>Subject-genre-form:p</target_index>
+  </index_subfields>
+  <!--616$x    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="616" subfields="x">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+  </index_subfields>
+  <!--616$y    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-name-geographical:w,Subject-name-geographical:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="616" subfields="y">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-name-geographical:w</target_index>
+    <target_index>Subject-name-geographical:p</target_index>
+  </index_subfields>
+  <!--616$z    Subject:w,Subject:p,Subject-subdivision:w,Subject-subdivision:p,Subject-chronological:w,Subject-chronological-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="616" subfields="z">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+    <target_index>Subject-subdivision:w</target_index>
+    <target_index>Subject-subdivision:p</target_index>
+    <target_index>Subject-chronological:w</target_index>
+    <target_index>Subject-chronological:w</target_index>
+  </index_subfields>
+  <!--617 : hierarchical geographical name // see Marc21 752-->
+  <!--indexing a,b,c,d,e,f,g,h,i,k,l,m,n,o-->
+  <!--not indexing 2,3-->
+  <!--FIXME Create specific index?-->
+  <!--melm 617$abcdefghiklmno    Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="617" subfields="abcdefghiklmno">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+  </index_subfields>
+  <!--620 : Place and date of publication/performance // see Marc21 752-->
+  <!--indexing a,b,c,d,e,f,g,h,i,k,l,m,n,o-->
+  <!--not indexing 2,3-->
+  <!--f-i are defined in French translation of Unimarc Manual-->
+  <!--FIXME Create specific index?-->
+  <!--melm 620$abcdefghiklmno    Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="620" subfields="abcdefghiklmno">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+  </index_subfields>
+  <!--621 : Place and date of provenance // see Marc21 752-->
+  <!--indexing a,b,c,d,e,f,g,h,i,k,l,m,n,o-->
+  <!--not indexing 2,3-->
+  <!--FIXME Create specific index?-->
+  <!--621$abcdefghiklmno   Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="621" subfields="abcdefghiklmno">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+  </index_subfields>
+  <!--626 : Technical details access // see Marc21 753-->
+  <!--Note : obsolete field (use 337 field instead)-->
+  <!--660 : Geographic area code // see Marc21 043-->
+  <!-- Coded information on 7 bytes-->
+  <!--660$a     Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="660" subfields="a">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+  </index_subfields>
+  <!--661 : Chronological coverage code-->
+  <!--Coded information on 4 bytes-->
+  <!--661$a     Subject,Subject:p-->
+  <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="661" subfields="a">
+    <target_index>Subject:w</target_index>
+    <target_index>Subject:p</target_index>
+  </index_subfields>
   <!--==== 67X/68X BLOCK OF CLASSIFICATIONS ====-->
   <!--record.abs line 471: melm 670            Subject-precis:w,Subject-precis:p-->
   <index_data_field tag="670">
index a8cde51..ef2ff9e 100644 (file)
@@ -1657,28 +1657,49 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='600']">
     <xslo:for-each select="marc:subfield">
-      <xslo:if test="contains('a', @code)">
-        <z:index name="Personal-name:w Personal-name:p Subject:w Subject:p">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
           <xslo:value-of select="."/>
         </z:index>
       </xslo:if>
     </xslo:for-each>
     <xslo:for-each select="marc:subfield">
-      <xslo:if test="contains('9', @code)">
-        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+      <xslo:if test="contains('abdgt', @code)">
+        <z:index name="Personal-name:w Personal-name:p Subject-name-personal:w Subject-name-personal:p Subject:w Subject:p">
           <xslo:value-of select="."/>
         </z:index>
       </xslo:if>
     </xslo:for-each>
-  </xslo:template>
-  <xslo:template mode="index_subfields" match="marc:datafield[@tag='601']">
     <xslo:for-each select="marc:subfield">
-      <xslo:if test="contains('a', @code)">
-        <z:index name="Corporate-name:w Conference-name:w Corporate-name:p Conference-name:p">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-name-personal:w Subject-name-personal:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-personal:w Subject-name-personal:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-name-personal:w Subject-name-personal:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-name-personal:w Subject-name-personal:p">
           <xslo:value-of select="."/>
         </z:index>
       </xslo:if>
     </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='601']">
     <xslo:for-each select="marc:subfield">
       <xslo:if test="contains('9', @code)">
         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
@@ -1686,22 +1707,85 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
-  </xslo:template>
-  <xslo:template mode="index_subfields" match="marc:datafield[@tag='602']">
     <xslo:for-each select="marc:subfield">
       <xslo:if test="contains('a', @code)">
-        <z:index name="Personal-name:w Personal-name:p">
+        <z:index name="Corporate-name:w Corporate-name:p Conference-name:w Conference-name:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p Subject:w Subject:p">
           <xslo:value-of select="."/>
         </z:index>
       </xslo:if>
     </xslo:for-each>
     <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='602']">
+    <xslo:for-each select="marc:subfield">
       <xslo:if test="contains('9', @code)">
         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
           <xslo:value-of select="."/>
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('at', @code)">
+        <z:index name="Personal-name:w Personal-name:p Subject-name-personal:w Subject-name-personal:p Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-name-personal:w Subject-name-personal:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-personal:w Subject-name-personal:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-name-personal:w Subject-name-personal:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-name-personal:w Subject-name-personal:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='604']">
     <xslo:for-each select="marc:subfield">
@@ -1711,6 +1795,48 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('at', @code)">
+        <z:index name="Name-and-title:w Name-and-title:p Subject-title:w Subject-title:p Personal-name:w Personal-name:p Subject-name-personal:w Subject-name-personal:p Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('t', @code)">
+        <z:index name="Name-and-title:w Name-and-title:p Subject-title:w Subject-title:p Subject-name-personal:w Subject-name-personal:p Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-title:w Subject-title:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-title:w Subject-title:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-title:w Subject-title:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-title:w Subject-title:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='605']">
     <xslo:for-each select="marc:subfield">
@@ -1720,6 +1846,41 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('ahiklmnqrsuw', @code)">
+        <z:index name="Subject-title:w Subject-title:p Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-title:w Subject-title:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-title:w Subject-title:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-title:w Subject-title:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-title:w Subject-title:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='606']">
     <xslo:for-each select="marc:subfield">
@@ -1729,6 +1890,41 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="Subject-topical:w Subject-topical:p Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-topical:w Subject-topical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-topical:w Subject-topical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-topical:w Subject-topical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-topical:w Subject-topical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='607']">
     <xslo:for-each select="marc:subfield">
@@ -1738,6 +1934,41 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="Name-geographic:w Name-geographic:p Subject-name-geographical:w Subject-name-geographical:p Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-name-geographical:w Subject-name-geographical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-name-geographical:w Subject-name-geographical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='608']">
     <xslo:for-each select="marc:subfield">
@@ -1748,12 +1979,56 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
       </xslo:if>
     </xslo:for-each>
     <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="Subject-genre-form:w Subject-genre-form:p Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-genre-form:w Subject-genre-form:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-genre-form:w Subject-genre-form:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='610']">
+    <xslo:for-each select="marc:subfield">
       <xslo:if test="contains('9', @code)">
         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
           <xslo:value-of select="."/>
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='615']">
     <xslo:for-each select="marc:subfield">
@@ -1763,6 +2038,13 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('axnm', @code)">
+        <z:index name="Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='616']">
     <xslo:for-each select="marc:subfield">
@@ -1772,6 +2054,41 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('j', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('x', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('y', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:w">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='617']">
     <xslo:for-each select="marc:subfield">
@@ -1781,6 +2098,13 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('abcdefghiklmno', @code)">
+        <z:index name="Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='620']">
     <xslo:for-each select="marc:subfield">
@@ -1790,6 +2114,13 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('abcdefghiklmno', @code)">
+        <z:index name="Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='621']">
     <xslo:for-each select="marc:subfield">
@@ -1799,6 +2130,103 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
         </z:index>
       </xslo:if>
     </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('abcdefghiklmno', @code)">
+        <z:index name="Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='603']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='630']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='631']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='632']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='633']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='634']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='635']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='636']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('9', @code)">
+        <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='660']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='661']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="Subject:w Subject:p">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
   </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='675']">
     <xslo:for-each select="marc:subfield">
@@ -2252,188 +2680,6 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
       <xslo:value-of select="normalize-space($raw_heading)"/>
     </z:index>
   </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='600']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='601']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='602']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='604']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='605']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='606']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='607']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='608']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='610']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='615']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='616']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='617']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='620']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
-  <xslo:template mode="index_data_field" match="marc:datafield[@tag='621']">
-    <z:index name="Subject:w Subject:p">
-      <xslo:variable name="raw_heading">
-        <xslo:for-each select="marc:subfield">
-          <xslo:if test="position() &gt; 1">
-            <xslo:value-of select="substring(' ', 1, 1)"/>
-          </xslo:if>
-          <xslo:value-of select="."/>
-        </xslo:for-each>
-      </xslo:variable>
-      <xslo:value-of select="normalize-space($raw_heading)"/>
-    </z:index>
-  </xslo:template>
   <xslo:template mode="index_data_field" match="marc:datafield[@tag='670']">
     <z:index name="Subject-precis:w Subject-precis:p">
       <xslo:variable name="raw_heading">