| <?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. |
| --> |
| |
| <!-- |
| Test Config that enumerates many different update processor chain |
| configurations. |
| |
| --> |
| <config> |
| <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion> |
| <xi:include href="solrconfig.snippet.randomindexconfig.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> |
| <requestHandler name="standard" class="solr.StandardRequestHandler"></requestHandler> |
| <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/> |
| |
| <updateRequestProcessorChain name="comprehensive"> |
| <processor class="solr.FieldLengthUpdateProcessorFactory"> |
| <arr name="typeClass"> |
| <str>solr.TrieIntField</str> |
| <str>solr.TrieLongField</str> |
| </arr> |
| </processor> |
| <processor class="solr.MinFieldValueUpdateProcessorFactory"> |
| <str name="fieldName">min_foo_l</str> |
| </processor> |
| <processor class="solr.MaxFieldValueUpdateProcessorFactory"> |
| <str name="fieldName">max_foo_l</str> |
| </processor> |
| <processor class="solr.ConcatFieldUpdateProcessorFactory"> |
| <str name="delimiter">; </str> |
| <lst name="exclude"> |
| <str name="fieldName">primary_author_s1</str> |
| </lst> |
| </processor> |
| <processor class="solr.FirstFieldValueUpdateProcessorFactory"> |
| <str name="fieldName">primary_author_s1</str> |
| <str name="fieldName">first_foo_l</str> |
| </processor> |
| <processor class="solr.RunUpdateProcessorFactory" /> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="trim-all"> |
| <!-- no specific src field configs, so all fields should get trimmed --> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="trim-field"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="fieldName">foo_t</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="trim-most"> |
| <!-- all fields except the exclusions should be trimmed --> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <lst name="exclude"> |
| <str name="fieldName">foo_t</str> |
| </lst> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="trim-many"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="fieldRegex">foo.*</str> |
| <str name="fieldRegex">bar.*</str> |
| <lst name="exclude"> |
| <str name="fieldRegex">.*HOSS.*</str> |
| </lst> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="trim-few"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="fieldRegex">foo.*</str> |
| <str name="fieldRegex">bar.*</str> |
| <!-- each set of exclusions is checked independently --> |
| <lst name="exclude"> |
| <str name="typeClass">solr.DateField</str> |
| </lst> |
| <lst name="exclude"> |
| <str name="fieldRegex">.*HOSS.*</str> |
| </lst> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="trim-some"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="fieldRegex">foo.*</str> |
| <str name="fieldRegex">bar.*</str> |
| <!-- only excluded if it matches all in set --> |
| <lst name="exclude"> |
| <str name="typeClass">solr.DateField</str> |
| <str name="fieldRegex">.*HOSS.*</str> |
| </lst> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="trim-fields"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="fieldName">name</str> |
| <str name="fieldName">foo_t</str> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="trim-fields-arr"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <arr name="fieldName"> |
| <str>name</str> |
| <str>foo_t</str> |
| </arr> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="trim-field-regexes"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="fieldRegex">foo.*</str> |
| <str name="fieldRegex">bar.*_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="trim-types"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="typeName">nametext</str> |
| <str name="typeName">text_sw</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="trim-classes"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="typeClass">solr.DateField</str> |
| <str name="typeClass">solr.StrField</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="trim-multi"> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"> |
| <str name="typeClass">solr.DateField</str> |
| <str name="typeClass">solr.StrField</str> |
| <arr name="fieldRegex"> |
| <str>foo.*</str> |
| </arr> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="remove-all-blanks"> |
| <processor class="solr.RemoveBlankFieldUpdateProcessorFactory"> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="length-none"> |
| <processor class="solr.FieldLengthUpdateProcessorFactory"> |
| <!-- by default, the processor doesn't touch anything --> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="length-some"> |
| <processor class="solr.FieldLengthUpdateProcessorFactory"> |
| <arr name="fieldRegex"> |
| <str>foo.*</str> |
| <str>yak.*</str> |
| </arr> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="concat-defaults"> |
| <processor class="solr.ConcatFieldUpdateProcessorFactory"> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="concat-field"> |
| <processor class="solr.ConcatFieldUpdateProcessorFactory"> |
| <str name="fieldName">foo_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="concat-type-delim"> |
| <processor class="solr.ConcatFieldUpdateProcessorFactory"> |
| <str name="typeName">string</str> |
| <str name="delimiter">; </str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="first-value"> |
| <processor class="solr.FirstFieldValueUpdateProcessorFactory"> |
| <str name="fieldName">foo_s</str> |
| <str name="fieldName">bar_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="last-value"> |
| <processor class="solr.LastFieldValueUpdateProcessorFactory"> |
| <str name="fieldName">foo_s</str> |
| <str name="fieldName">bar_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="min-value"> |
| <processor class="solr.MinFieldValueUpdateProcessorFactory"> |
| <str name="fieldName">foo_i</str> |
| <str name="fieldName">foo_s</str> |
| <str name="fieldName">bar_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="max-value"> |
| <processor class="solr.MaxFieldValueUpdateProcessorFactory"> |
| <str name="fieldName">foo_i</str> |
| <str name="fieldName">foo_s</str> |
| <str name="fieldName">bar_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="html-strip"> |
| <processor class="solr.HTMLStripFieldUpdateProcessorFactory"> |
| <str name="fieldName">html_s</str> |
| </processor> |
| <processor class="solr.TrimFieldUpdateProcessorFactory"/> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="truncate"> |
| <processor class="solr.TruncateFieldUpdateProcessorFactory"> |
| <str name="fieldName">trunc</str> |
| <int name="maxLength">5</int> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="count"> |
| <processor class="solr.CountFieldValuesUpdateProcessorFactory"> |
| <str name="fieldName">count_field</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="ignore-not-in-schema"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory" /> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="ignore-not-in-schema-explicit-selector"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <bool name="fieldNameMatchesSchemaField">false</bool> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="ignore-in-schema"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <bool name="fieldNameMatchesSchemaField">true</bool> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="ignore-not-in-schema-and-foo-name-prefix"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <str name="fieldRegex">foo.*</str> |
| <bool name="fieldNameMatchesSchemaField">false</bool> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="ignore-foo-name-prefix-except-not-schema"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <str name="fieldRegex">foo.*</str> |
| <lst name="exclude"> |
| <bool name="fieldNameMatchesSchemaField">false</bool> |
| </lst> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="ignore-not-in-schema-explicit-str-selector"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <str name="fieldNameMatchesSchemaField">false</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="ignore-in-schema-str-selector"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <str name="fieldNameMatchesSchemaField">true</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="ignore-some"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <str name="fieldRegex">.*_raw</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="clone-single"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <str name="source">source1_s</str> |
| <str name="dest">dest_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| <updateRequestProcessorChain name="clone-multi"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <str name="source">source1_s</str> |
| <str name="source">source2_s</str> |
| <str name="dest">dest_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="clone-array"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <arr name="source"> |
| <str>source1_s</str> |
| <str>source2_s</str> |
| </arr> |
| <str name="dest">dest_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="clone-selector"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <lst name="source"> |
| <str name="fieldRegex">source\d_.*</str> |
| <lst name="exclude"> |
| <str name="fieldRegex">source0_.*</str> |
| </lst> |
| </lst> |
| <str name="dest">dest_s</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="clone-max-chars"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <str name="source">field1</str> |
| <str name="dest">toField</str> |
| </processor> |
| <processor class="solr.TruncateFieldUpdateProcessorFactory"> |
| <str name="fieldName">toField</str> |
| <int name="maxLength">3</int> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="clone-move"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <str name="source">field1</str> |
| <str name="dest">toField</str> |
| </processor> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <str name="fieldName">field1</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="clone-replace"> |
| <processor class="solr.IgnoreFieldUpdateProcessorFactory"> |
| <str name="fieldName">toField</str> |
| </processor> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <str name="source">field1</str> |
| <str name="dest">toField</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="clone-append"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <str name="source">field1</str> |
| <str name="source">field2</str> |
| <str name="dest">toField</str> |
| </processor> |
| <processor class="solr.ConcatFieldUpdateProcessorFactory"> |
| <str name="delimiter">; </str> |
| <str name="fieldName">toField</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <!-- example used in CloneFieldUpdateProcessorFactory javadocs --> |
| <updateRequestProcessorChain name="multiple-clones"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <str name="source">category</str> |
| <str name="dest">category_s</str> |
| </processor> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <arr name="source"> |
| <str>authors</str> |
| <str>editors</str> |
| </arr> |
| <str name="dest">contributors</str> |
| </processor> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <lst name="source"> |
| <str name="fieldRegex">.*_price</str> |
| <lst name="exclude"> |
| <str name="fieldName">list_price</str> |
| </lst> |
| </lst> |
| <str name="dest">all_prices</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="clone-then-count"> |
| <processor class="solr.CloneFieldUpdateProcessorFactory"> |
| <str name="source">category</str> |
| <str name="dest">category_count</str> |
| </processor> |
| <processor class="solr.CountFieldValuesUpdateProcessorFactory"> |
| <str name="fieldName">category_count</str> |
| </processor> |
| <processor class="solr.DefaultValueUpdateProcessorFactory"> |
| <str name="fieldName">category_count</str> |
| <int name="value">0</int> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="regex-replace"> |
| <processor class="solr.RegexReplaceProcessorFactory"> |
| <str name="fieldName">content</str> |
| <str name="fieldName">title</str> |
| <str name="pattern">\s+</str> |
| <str name="replacement">X</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="default-values"> |
| <processor class="solr.DefaultValueUpdateProcessorFactory"> |
| <str name="fieldName">processor_default_s</str> |
| <str name="value">X</str> |
| </processor> |
| <processor class="solr.DefaultValueUpdateProcessorFactory"> |
| <str name="fieldName">processor_default_i</str> |
| <int name="value">42</int> |
| </processor> |
| <processor class="solr.UUIDUpdateProcessorFactory"> |
| <str name="fieldName">uuid</str> |
| </processor> |
| <processor class="solr.TimestampUpdateProcessorFactory"> |
| <str name="fieldName">timestamp</str> |
| </processor> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="pre-analyzed-simple"> |
| <processor class="solr.PreAnalyzedUpdateProcessorFactory"> |
| <str name="fieldName">subject</str> |
| <str name="fieldName">title</str> |
| <str name="fieldName">teststop</str> |
| <str name="fieldName">nonexistent</str> |
| <str name="fieldName">ssto</str> |
| <str name="fieldName">sind</str> |
| <str name="parser">simple</str> |
| </processor> |
| <processor class="solr.RunUpdateProcessorFactory" /> |
| </updateRequestProcessorChain> |
| |
| <updateRequestProcessorChain name="pre-analyzed-json"> |
| <processor class="solr.PreAnalyzedUpdateProcessorFactory"> |
| <str name="fieldName">subject</str> |
| <str name="fieldName">title</str> |
| <str name="fieldName">teststop</str> |
| <str name="fieldName">nonexistent</str> |
| <str name="fieldName">ssto</str> |
| <str name="fieldName">sind</str> |
| <str name="parser">json</str> |
| </processor> |
| <processor class="solr.RunUpdateProcessorFactory" /> |
| </updateRequestProcessorChain> |
| |
| </config> |