| <?xml version="1.0" encoding="UTF-8" ?> |
| <!-- |
| 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. |
| --> |
| <schema name="minimal" version="1.6"> |
| |
| <types> |
| <fieldType name="string" class="solr.StrField"/> |
| <fieldType name="descendent_path" class="solr.TextField"> |
| <analyzer type="index"> |
| <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/"/> |
| <filter class="solr.PatternCaptureGroupFilterFactory" pattern="((/).*)" preserve_original="false"/> |
| <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> |
| </analyzer> |
| <analyzer type="query"> |
| <tokenizer class="solr.KeywordTokenizerFactory"/> |
| </analyzer> |
| </fieldType> |
| <fieldType name="children_path" class="solr.TextField"> |
| <analyzer type="index"> |
| <tokenizer class="solr.KeywordTokenizerFactory"/> |
| <filter class="solr.ReverseStringFilterFactory"/> |
| <filter class="solr.LengthFilterFactory" min="2" max="2147483647"/> |
| <filter class="solr.PatternReplaceFilterFactory" pattern="([^\/]+)(\/)" replacement="$2" |
| replace="first"/> |
| <filter class="solr.PatternReplaceFilterFactory" pattern="(\/)(.+)" replacement="$2" replace="first"/> |
| <filter class="solr.ReverseStringFilterFactory"/> |
| </analyzer> |
| <analyzer type="query"> |
| <tokenizer class="solr.KeywordTokenizerFactory"/> |
| </analyzer> |
| </fieldType> |
| <fieldType name="parent_path" class="solr.TextField"> |
| <analyzer type="index"> |
| <tokenizer class="solr.KeywordTokenizerFactory"/> |
| </analyzer> |
| <analyzer type="query"> |
| <tokenizer class="solr.KeywordTokenizerFactory"/> |
| <filter class="solr.ReverseStringFilterFactory"/> |
| <filter class="solr.PatternReplaceFilterFactory" pattern="[^\/]+\/" replacement="" replace="first"/> |
| <filter class="solr.ReverseStringFilterFactory"/> |
| </analyzer> |
| </fieldType> |
| <fieldType name="text_keepcase" class="solr.TextField" positionIncrementGap="100"> |
| <analyzer type="index"> |
| <tokenizer class="solr.StandardTokenizerFactory"/> |
| </analyzer> |
| <analyzer type="query"> |
| <tokenizer class="solr.StandardTokenizerFactory"/> |
| </analyzer> |
| </fieldType> |
| <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> |
| <analyzer type="index"> |
| <tokenizer class="solr.StandardTokenizerFactory" /> |
| <filter class="solr.LowerCaseFilterFactory"/> |
| </analyzer> |
| <analyzer type="query"> |
| <tokenizer class="solr.StandardTokenizerFactory" /> |
| <filter class="solr.LowerCaseFilterFactory"/> |
| </analyzer> |
| </fieldType> |
| <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" > |
| <analyzer> |
| <tokenizer class="solr.StandardTokenizerFactory"/> |
| <filter class="solr.LowerCaseFilterFactory"/> |
| <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> |
| </analyzer> |
| </fieldType> |
| <fieldtype name="spellcheck" class="solr.TextField"> |
| <analyzer type="index"> |
| <tokenizer class="solr.StandardTokenizerFactory"/> |
| <filter class="solr.LowerCaseFilterFactory"/> |
| <filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="3" |
| outputUnigrams="true" outputUnigramsIfNoShingles="true" tokenSeparator=" " fillerToken="*"/> |
| </analyzer> |
| <analyzer type="query"> |
| <tokenizer class="solr.KeywordTokenizerFactory"/> |
| <filter class="solr.LowerCaseFilterFactory"/> |
| </analyzer> |
| </fieldtype> |
| |
| <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/> |
| |
| <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/> |
| <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/> |
| <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/> |
| <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/> |
| |
| <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/> |
| <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/> |
| <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/> |
| <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/> |
| <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/> |
| |
| <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/> |
| |
| <fieldtype name="binary" class="solr.BinaryField"/> |
| |
| <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField"/> |
| </types> |
| |
| <fields> |
| <field name="path_exact" type="string" indexed="true" stored="true"/> |
| <field name="path_child" type="children_path" indexed="true" stored="false"/> |
| <field name="path_anc" type="parent_path" indexed="true" stored="false"/> |
| <field name="path_des" type="descendent_path" indexed="true" stored="false"/> |
| <field name="catch_all" type="text_general" indexed="true" stored="false" multiValued="true" termVectors="true"/> <!-- term vectors used for rep:similar --> |
| <field name=":path" type="string" indexed="true" stored="false" /> |
| <field name=":indexed" type="tdate" indexed="true" stored="false" default="NOW" docValues="true"/> |
| <field name=":suggest-weight" type="tint" indexed="false" stored="false" default="1" docValues="true"/> |
| <field name=":suggest" type="string" indexed="true" stored="true" multiValued="true" /> |
| <field name=":spellcheck" type="spellcheck" indexed="true" stored="false" multiValued="true" /> |
| <field name="path_collapsed" type="string" indexed="true" stored="false" docValues="true"/> |
| <field name="path_depth" type="tint" indexed="true" stored="false"/> |
| <field name="_version_" type="long" indexed="true" stored="true"/> |
| |
| <!-- facet fields --> |
| <dynamicField name="*_facet" type="string" indexed="false" stored="false" docValues="true" multiValued="true"/> |
| |
| <!-- sorting dynamic fields --> |
| <dynamicField name="*_double_sort" type="tdouble" indexed="false" stored="false" multiValued="false" docValues="true"/> |
| <dynamicField name="*_string_sort" type="string" indexed="false" stored="false" multiValued="false" docValues="true"/> |
| <dynamicField name="*_binary_sort" type="string" indexed="true" stored="false" multiValued="false" omitNorms="true"/> |
| |
| <dynamicField name="*" type="text_general" indexed="true" stored="false" multiValued="true"/> |
| </fields> |
| |
| <uniqueKey>path_exact</uniqueKey> |
| <copyField source="path_exact" dest="path_anc"/> |
| <copyField source="path_exact" dest="path_des"/> |
| <copyField source="path_exact" dest="path_child"/> |
| <copyField source="path_exact" dest=":path"/> |
| <copyField source="*" dest="catch_all"/> |
| <copyField source="jcr:primaryType" dest="jcr:primaryType_facet"/> |
| <copyField source="jcr:title" dest=":spellcheck"/> |
| <copyField source="jcr:description" dest=":spellcheck"/> |
| <copyField source="jcr:title" dest=":suggest"/> |
| <copyField source="jcr:description" dest=":suggest"/> |
| |
| </schema> |