solr/solr/conf/schema.xml in outoftime-sunspot-0.8.9 vs solr/solr/conf/schema.xml in outoftime-sunspot-0.9.0

- old
+ new

@@ -1,231 +1,50 @@ -<?xml version="1.0" ?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> - -<!-- This is the Solr schema file. This file should be named "schema.xml" and -should be in the conf directory under the solr home -(i.e. ./solr/conf/schema.xml by default) -or located where the classloader for the Solr webapp can find it. - -For more information, on how to customize this file, please see -http://wiki.apache.org/solr/SchemaXml ---> - -<schema name="sunspot" version="1.1"> - <!-- attribute "name" is the name of this schema and is only used for display purposes. - Applications should change this to reflect the nature of the search collection. - version="1.1" is Solr's version number for the schema syntax and semantics. It should - not normally be changed by applications. - 1.0: multiValued attribute did not exist, all fields are multiValued by nature - 1.1: multiValued attribute introduced, false by default --> - +<?xml version='1.0' encoding='utf-8' ?> +<schema name='sunspot' version='0.9'> <types> - <!-- field type definitions. The "name" attribute is - just a label to be used by field definitions. The "class" - attribute and any other attributes determine the real - behavior of the fieldtype. - Class names starting with "solr" refer to java classes in the - org.apache.solr.analysis package. - --> - - <!-- The StrField type is not analyzed, but indexed/stored verbatim. - - StrField and TextField support an optional compressThreshold which - limits compression (if enabled in the derived fields) to values which - exceed a certain size (in characters). - --> - <fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> - - <!-- boolean type: "true" or "false" --> - <fieldtype name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/> - - <!-- The optional sortMissingLast and sortMissingFirst attributes are - currently supported on types that are sorted internally as strings. - - If sortMissingLast="true", then a sort on this field will cause documents - without the field to come after documents with the field, - regardless of the requested sort order (asc or desc). - - If sortMissingFirst="true", then a sort on this field will cause documents - without the field to come before documents with the field, - regardless of the requested sort order. - - If sortMissingLast="false" and sortMissingFirst="false" (the default), - then default lucene sorting will be used which places docs without the - field first in an ascending sort and last in a descending sort. - --> - - - <!-- numeric field types that store and index the text - value verbatim (and hence don't support range queries, since the - lexicographic ordering isn't equal to the numeric ordering) --> - <fieldtype name="integer" class="solr.IntField" omitNorms="true"/> - <fieldtype name="long" class="solr.LongField" omitNorms="true"/> - <fieldtype name="float" class="solr.FloatField" omitNorms="true"/> - <fieldtype name="double" class="solr.DoubleField" omitNorms="true"/> - - - <!-- Numeric field types that manipulate the value into - a string value that isn't human-readable in its internal form, - but with a lexicographic ordering the same as the numeric ordering, - so that range queries work correctly. --> - <fieldtype name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/> - <fieldtype name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/> - <fieldtype name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/> - <fieldtype name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/> - - - <!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and - is a more restricted form of the canonical representation of dateTime - http://www.w3.org/TR/xmlschema-2/#dateTime - The trailing "Z" designates UTC time and is mandatory. - Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z - All other components are mandatory. - - Expressions can also be used to denote calculations that should be - performed relative to "NOW" to determine the value, ie... - - NOW/HOUR - ... Round to the start of the current hour - NOW-1DAY - ... Exactly 1 day prior to now - NOW/DAY+6MONTHS+3DAYS - ... 6 months and 3 days in the future from the start of - the current day - - Consult the DateField javadocs for more information. - --> - <fieldtype name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/> - - <!-- solr.TextField allows the specification of custom text analyzers - specified as a tokenizer and a list of token filters. Different - analyzers may be specified for indexing and querying. - - The optional positionIncrementGap puts space between multiple fields of - this type on the same document, with the purpose of preventing false phrase - matching across fields. - - For more info on customizing your analyzer chain, please see - http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters - --> - - <!-- One can also specify an existing Analyzer class that has a - default constructor via the class attribute on the analyzer element - <fieldtype name="text_greek" class="solr.TextField"> - <analyzer class="org.apache.lucene.analysis.el.GreekAnalyzer"/> - </fieldType> - --> - - <!-- A text field that only splits on whitespace for exact matching of words --> - <fieldtype name="text_ws" class="solr.TextField" positionIncrementGap="100"> + <fieldtype class='solr.TextField' name='text' positionIncrementGap='100'> <analyzer> - <tokenizer class="solr.WhitespaceTokenizerFactory"/> + <tokenizer class='solr.StandardTokenizerFactory' /> + <filter class='solr.StandardFilterFactory' /> + <filter class='solr.LowerCaseFilterFactory' /> </analyzer> </fieldtype> - - <fieldtype name="text" class="solr.TextField" positionIncrementGap="100"> - <analyzer> - <tokenizer class="solr.StandardTokenizerFactory"/> - <filter class="solr.StandardFilterFactory"/> - <filter class="solr.LowerCaseFilterFactory"/> - </analyzer> - </fieldtype> - - <fieldtype name="text_zh" class="solr.TextField"> - <analyzer class="org.apache.lucene.analysis.cn.ChineseAnalyzer"/> - </fieldtype> - - - <!-- Less flexible matching, but less false matches. Probably not ideal for product names, - but may be good for SKUs. Can insert dashes in the wrong place and still match. --> - <fieldtype name="textTight" class="solr.TextField" positionIncrementGap="100" > - <analyzer> - <tokenizer class="solr.WhitespaceTokenizerFactory"/> - <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/> - <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> - <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/> - <filter class="solr.LowerCaseFilterFactory"/> - <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/> - <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> - </analyzer> - </fieldtype> - + <fieldtype class='solr.RandomSortField' name='rand'></fieldtype> + <fieldtype class='solr.BoolField' name='boolean' omitNorms='true' /> + <fieldtype class='solr.SortableFloatField' name='sfloat' omitNorms='true' /> + <fieldtype class='solr.DateField' name='date' omitNorms='true' /> + <fieldtype class='solr.SortableIntField' name='sint' omitNorms='true' /> + <fieldtype class='solr.StrField' name='string' omitNorms='true' /> </types> - - <fields> - <!-- Valid attributes for fields: - name: mandatory - the name for the field - type: mandatory - the name of a previously defined type from the <types> section - indexed: true if this field should be indexed (searchable or sortable) - stored: true if this field should be retrievable - compressed: [false] if this field should be stored using gzip compression - (this will only apply if the field type is compressable; among - the standard field types, only TextField and StrField are) - multiValued: true if this field may contain multiple values per document - omitNorms: (expert) set to true to omit the norms associated with - this field (this disables length normalization and index-time - boosting for the field, and saves some memory). Only full-text - fields or fields that need an index-time boost need norms. - --> - - <field name="id" type="string" indexed="true" stored="true"/> - <field name="pk" type="string" indexed="true" stored="true"/> - <field name="type" type="string" indexed="true" stored="false" multiValued="true"/> - - <!-- catchall field, containing all other searchable text fields (implemented - via copyField further on in this schema --> - <field name="text" type="text" indexed="true" stored="false" multiValued="true"/> - - <!-- Dynamic field definitions. If a field name is not found, dynamicFields - will be used if the name matches any of the patterns. - RESTRICTION: the glob-like pattern in the name attribute must have - a "*" only at the start or the end. - EXAMPLE: name="*_i" will match any field ending in _i (like myid_i, z_i) - Longer patterns will be matched first. if equal size patterns - both match, the first appearing in the schema will be used. --> - <dynamicField name="*_text" type="text" indexed="true" stored="false" multiValued="true"/> - - <dynamicField name="*_s" type="string" indexed="true" stored="false" multiValued="false"/> - <dynamicField name="*_i" type="sint" indexed="true" stored="false" multiValued="false"/> - <dynamicField name="*_f" type="sfloat" indexed="true" stored="false" multiValued="false"/> - <dynamicField name="*_d" type="date" indexed="true" stored="false" multiValued="false"/> - <dynamicField name="*_b" type="boolean" indexed="true" stored="false" multiValued="false"/> - - <dynamicField name="*_sm" type="string" indexed="true" stored="false" multiValued="true"/> - <dynamicField name="*_im" type="sint" indexed="true" stored="false" multiValued="true"/> - <dynamicField name="*_fm" type="sfloat" indexed="true" stored="false" multiValued="true"/> - <dynamicField name="*_dm" type="date" indexed="true" stored="false" multiValued="true"/> - <dynamicField name="*_bm" type="boolean" indexed="true" stored="false" multiValued="true"/> - </fields> - - <!-- field to use to determine and enforce document uniqueness. --> - <uniqueKey>id</uniqueKey> - - <!-- field for the QueryParser to use when an explicit fieldname is absent --> - <defaultSearchField>text</defaultSearchField> - - <!-- SolrQueryParser configuration: defaultOperator="AND|OR" --> - <solrQueryParser defaultOperator="AND"/> - - <!-- copyField commands copy one field to another at the time a document - 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="*_text" dest="text"/> - - <!-- Similarity is the scoring routine for each document vs. a query. - A custom similarity may be specified here, but the default is fine - for most applications. --> - <!-- <similarity class="org.apache.lucene.search.DefaultSimilarity"/> --> - - </schema> + <field indexed='true' multiValued='false' name='id' stored='true' type='string' /> + <field indexed='true' multiValued='true' name='type' stored='false' type='string' /> + <field indexed='true' multiValued='false' name='class_name' stored='false' type='string' /> + <field indexed='true' multiValued='true' name='text' stored='false' type='text' /> + <dynamicField indexed='true' multiValued='true' name='*_text' stored='false' type='text' /> + <dynamicField indexed='true' name='random_*' stored='false' type='rand' /> + <dynamicField indexed='true' multiValued='false' name='*_b' stored='false' type='boolean' /> + <dynamicField indexed='true' multiValued='false' name='*_f' stored='false' type='sfloat' /> + <dynamicField indexed='true' multiValued='false' name='*_d' stored='false' type='date' /> + <dynamicField indexed='true' multiValued='false' name='*_i' stored='false' type='sint' /> + <dynamicField indexed='true' multiValued='false' name='*_s' stored='false' type='string' /> + <dynamicField indexed='true' multiValued='true' name='*_bm' stored='false' type='boolean' /> + <dynamicField indexed='true' multiValued='true' name='*_fm' stored='false' type='sfloat' /> + <dynamicField indexed='true' multiValued='true' name='*_dm' stored='false' type='date' /> + <dynamicField indexed='true' multiValued='true' name='*_im' stored='false' type='sint' /> + <dynamicField indexed='true' multiValued='true' name='*_sm' stored='false' type='string' /> + <dynamicField indexed='true' multiValued='false' name='*_bs' stored='true' type='boolean' /> + <dynamicField indexed='true' multiValued='false' name='*_fs' stored='true' type='sfloat' /> + <dynamicField indexed='true' multiValued='false' name='*_ds' stored='true' type='date' /> + <dynamicField indexed='true' multiValued='false' name='*_is' stored='true' type='sint' /> + <dynamicField indexed='true' multiValued='false' name='*_ss' stored='true' type='string' /> + <dynamicField indexed='true' multiValued='true' name='*_bms' stored='true' type='boolean' /> + <dynamicField indexed='true' multiValued='true' name='*_fms' stored='true' type='sfloat' /> + <dynamicField indexed='true' multiValued='true' name='*_dms' stored='true' type='date' /> + <dynamicField indexed='true' multiValued='true' name='*_ims' stored='true' type='sint' /> + <dynamicField indexed='true' multiValued='true' name='*_sms' stored='true' type='string' /> + </fields> + <uniqueKey>id</uniqueKey> + <defaultSearchField>text</defaultSearchField> + <solrQueryParser defaultOperator='AND' /> + <copyField dest='text' source='*_text' /> +</schema>