Store subject*. Use facet field type.
authorDennis Schafroth <dennis@indexdata.com>
Sun, 18 Sep 2011 21:17:38 +0000 (23:17 +0200)
committerDennis Schafroth <dennis@indexdata.com>
Sun, 18 Sep 2011 21:17:38 +0000 (23:17 +0200)
solr-conf/schema.xml

index 02fa133..ea7742f 100644 (file)
     <!-- A Trie based date field for faster date range queries and date faceting. -->
     <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>
 
+    <!-- Test of new facet type that would support case-insensitive facetting -->
+    <fieldType name="facet" class="solr.TextField" sortMissingLast="true" omitNorms="true">
+      <analyzer>
+        <!-- KeywordTokenizer does no actual tokenizing, so the entire                                                                                                                                              
+             input string is preserved as a single token 
+          -->
+        <tokenizer class="solr.KeywordTokenizerFactory"/>
+        <!-- The LowerCase TokenFilter does what you expect, which can be
+            when you want your sorting to be case insensitive
+          -->
+        <filter class="solr.LowerCaseFilterFactory" />
+        <!-- The TrimFilter removes any leading or trailing whitespace -->
+        <filter class="solr.TrimFilterFactory" />
+      </analyzer>
+    </fieldType>
 
     <!--
       Note:
    <field name="id" type="string" indexed="true" stored="true" required="true" /> 
 
    <field name="author"       type="text"   indexed="true" stored="true"  multiValued="true" compressed="false" omitNorms="true"/>
-   <field name="author_exact" type="string" indexed="true" stored="true"  multiValued="true" compressed="false" omitNorms="true"/>
+   <field name="author_exact" type="facet" indexed="true" stored="true"  multiValued="true" compressed="false" omitNorms="true"/>
    <field name="author-date"  type="text"   indexed="true" stored="true"  multiValued="true" omitNorms="true"/>
    <field name="author-title" type="text"   indexed="true" stored="true"  multiValued="true" omitNorms="true"/>
 
    <field name="issn" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
    <field name="lccn" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
 
-   <field name="medium"       type="text"   indexed="true" stored="true"  multiValued="true" omitNorms="true"/>
-   <field name="medium_exact" type="string" indexed="true" stored="false" multiValued="true" omitNorms="true"/>
+   <field name="medium"       type="text"   indexed="true" stored="true" multiValued="true" omitNorms="true"/>
+   <field name="medium_exact" type="facet" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
 
    <field name="meeting-date"     type="text" indexed="true" stored="true" omitNorms="true"/>
    <field name="meeting-location" type="text" indexed="true" stored="true" omitNorms="true"/>
 
    <field name="series-title" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
 
-   <field name="subject"       type="text_ws" indexed="true" stored="false"  multiValued="true" omitNorms="true" />
-   <field name="subject_exact" type="subject" indexed="true" stored="false"  multiValued="true" omitNorms="true" />
-   <field name="subject-long"  type="text_ws" indexed="true" stored="true"   multiValued="true" omitNorms="true" />
+   <field name="subject"       type="text_ws" indexed="true" stored="true"  multiValued="true" omitNorms="true" />
+   <field name="subject_exact" type="facet" indexed="true" stored="true"  multiValued="true" omitNorms="true" />
+   <field name="subject-long"  type="text_ws" indexed="true" stored="true"  multiValued="true" omitNorms="true" />
 
    <field name="system-control-nr" type="text" indexed="true" stored="true" multiValued="true" omitNorms="true"/>
 
    <field name="tech-rep-nr" type="text" indexed="true" multiValued="true" stored="true"/>
 
    <field name="title"                  type="text"   indexed="true" multiValued="true" compressed="false" stored="true"/>
-   <field name="title_exact"            type="string" indexed="true" multiValued="true" compressed="false" stored="true"/>
    <field name="title-complete"         type="text"   indexed="true" multiValued="true" compressed="true"  stored="true"/>
    <field name="title-dates"            type="text"   indexed="true" multiValued="true" stored="true"/>
    <field name="title-medium"           type="text"   indexed="true" multiValued="true" stored="true"/>
    <field name="title-uniform-partname" type="text"   indexed="true" multiValued="true" stored="true"/>
    <field name="title-uniform-parts"    type="text"   indexed="true" multiValued="true" stored="true"/>
 
+   <field name="journal-title"          type="text" indexed="true" multiValued="true" compressed="false" stored="true"/>
+   <field name="journal-title_exact"    type="test" indexed="true" multiValued="true" compressed="false" stored="true"/>
+
    <field name="physical-accomp"     type="text" indexed="true" stored="true" multiValued="true" />
    <field name="physical-dimensions" type="text" indexed="true" stored="true" multiValued="true" />
    <field name="physical-extent"     type="text" indexed="true" stored="true" multiValued="true" />
         is added to the index.  It's used either to index the same field differently,
         or to add multiple fields to the same field for easier/faster searching.  -->
 
-   <copyField source="title"   dest="title_exact"/>
    <copyField source="author"  dest="author_exact"/>
    <copyField source="subject" dest="subject_exact"/>
    <copyField source="medium"  dest="medium_exact"/>
+   <copyField source="journal-title"   dest="journal-title_exact"/>
        
    <!-- Above, multiple source fields are copied to the [text] field. 
          Another way to map multiple source fields to the same