$weighted_query .= "an=\"$operand\"";
}
+ # If the index is numeric, don't autoquote it.
+ elsif ( $index =~ /,st-numeric$/ ) {
+ $weighted_query .= " $index=$operand";
+ }
+
# If the index already has more than one qualifier, wrap the operand
# in quotes and pass it back (assumption is that the user knows what they
# are doing and won't appreciate us mucking up their query
'Illustration-code',
'Index-term-genre',
'Index-term-uncontrolled',
+ 'Interest-age-level',
+ 'Interest-grade-level',
'ISBN',
'isbn',
'ISSN',
'LC-card-number',
'lcn',
'lex',
+ 'lexile-number',
'llength',
'ln',
'ln-audio',
'Publisher',
'Provider',
'pv',
+ 'Reading-grade-level',
'Record-control-number',
'rcn',
'Record-type',
#which is processed higher up in this sub. Other than that, year searches are typically
#handled as limits which are not processed her either.
- # Date of Publication
- if ( $index =~ /yr/ ) {
+ # Search ranges: Date of Publication, st-numeric
+ if ( $index =~ /(yr|st-numeric)/ ) {
#weight_fields/relevance search causes errors with date ranges
#In the case of YYYY-, it will only return records with a 'yr' of YYYY (not the range)
#In the case of YYYY-YYYY, it will return no results
warn "LIMIT DESC:" . $limit_desc;
warn "---------\nLeave buildQuery\n---------";
}
+
return (
undef, $query, $simple_query, $query_cgi,
$query_desc, $limit, $limit_cgi, $limit_desc,
# Author-in-order - firstname lastname in 245$c statement of responsibility
att 9902 Author-in-order
# Lexile number
-att 9903 lex
+att 9903 lexile-number
+att 9908 Interest-age-level
+att 9909 Interest-grade-level
+att 9910 Reading-grade-level
+
att 9904 arl
att 9013 arp
att 9520 Item
l-format ff7-01-02
# Lexile Number
-lex 1=9903 r=r
+lexile-number 1=9903 r=r
+lex lexile-number
+Interest-age-level 1=9908 r=r
+Interest-grade-level 1=9909 r=r
+Reading-grade-level 1=9910 r=r
#Accelerated Reader Level
arl 1=9904 r=r
<target_index>Abstract:w</target_index>
<target_index>Abstract:p</target_index>
</index_data_field>
- <!--record.abs line 153: melm 521$a lex:n-->
- <index_subfields tag="521" subfields="a">
- <target_index>lex:w</target_index>
- <target_index>lex:p</target_index>
- <target_index>lex:n</target_index>
+ <index_subfields tag="521" subfields="a" condition="@ind1='0'">
+ <target_index>Reading-grade-level:w</target_index>
+ <target_index>Reading-grade-level:p</target_index>
+ <target_index>Reading-grade-level:n</target_index>
+ </index_subfields>
+ <index_subfields tag="521" subfields="a" condition="@ind1='1'">
+ <target_index>Interest-age-level:w</target_index>
+ <target_index>Interest-age-level:p</target_index>
+ <target_index>Interest-age-level:n</target_index>
+ </index_subfields>
+ <index_subfields tag="521" subfields="a" condition="@ind1='2'">
+ <target_index>Interest-grade-level:w</target_index>
+ <target_index>Interest-grade-level:p</target_index>
+ <target_index>Interest-grade-level:n</target_index>
+ </index_subfields>
+ <index_subfields tag="521" subfields="a" condition="@ind1='8'">
+ <target_index>lexile-number:w</target_index>
+ <target_index>lexile-number:p</target_index>
+ <target_index>lexile-number:n</target_index>
</index_subfields>
<!--record.abs line 154: melm 526$c arl,arl:n-->
<index_subfields tag="526" subfields="c">
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='521']">
- <xslo:for-each select="marc:subfield">
- <xslo:if test="contains('a', @code)">
- <z:index name="lex:w lex:p lex:n">
- <xslo:value-of select="."/>
- </z:index>
- </xslo:if>
- </xslo:for-each>
+ <xslo:if test="@ind1='0'">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Reading-grade-level:w Reading-grade-level:p Reading-grade-level:n">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:if>
+ <xslo:if test="@ind1='1'">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Interest-age-level:w Interest-age-level:p Interest-age-level:n">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:if>
+ <xslo:if test="@ind1='2'">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Interest-grade-level:w Interest-grade-level:p Interest-grade-level:n">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:if>
+ <xslo:if test="@ind1='8'">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="lexile-number:w lexile-number:p lexile-number:n">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:if>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='526']">
<xslo:for-each select="marc:subfield">