<?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="error_doc" version="1.6">
  <field name="_version_" type="plong" indexed="true" stored="true"/>
  <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />

  <!-- The Exception Details-->
  <field name="exception" type="string" indexed="true" stored="true" />
  <field name="hostname" type="string" indexed="true" stored="true" />
  <field name="stack" type="string" indexed="true" stored="true" />

  <!-- The timestamp of when it happened -->
  <field name="timestamp" type="timestamp" indexed="true" stored="true" />

  <!-- The message in string form (this may be garbage if the message is a bytes rather than text -->
  <field name="message" type="string" indexed="true" stored="true" />
  <field name="raw_message_bytes" type="bytes" indexed="false" stored="true" />
  <field name="error_fields" type="string" indexed="true" stored="true" />
  <field name="error_hash" type="string" indexed="true" stored="true" />
  <field name="failed_sensor_type" type="string" indexed="true" stored="true" />
  <field name="error_type" type="string" indexed="true" stored="true" />

  <!-- The GUID for the error -->
  <field name="guid" type="string" indexed="true" stored="true" required="true" multiValued="false" />
  <uniqueKey>guid</uniqueKey>

  <!-- Raw messages can be split into multiple fields -->
  <dynamicField name="raw_message*" type="text_raw" indexed="false" stored="true"/>
  <!-- Catch all, if we don't know about it, it gets dropped. -->
  <dynamicField name="*" type="ignored" multiValued="false" docValues="true"/>


  <fieldType name="string" stored="true" indexed="true" multiValued="false" class="solr.StrField" sortMissingLast="true" docValues="false"/>
  <fieldType name="boolean" stored="true" indexed="true" multiValued="false" class="solr.BoolField" sortMissingLast="true" docValues="false"/>
  <fieldType name="pint" stored="true" indexed="true" multiValued="false" class="solr.TrieIntField" sortMissingLast="false" docValues="true"/>
  <fieldType name="pfloat" stored="true" indexed="true" multiValued="false" class="solr.TrieFloatField" sortMissingLast="false" docValues="true"/>
  <fieldType name="plong" stored="true" indexed="true" multiValued="false" class="solr.TrieLongField" sortMissingLast="false" docValues="true"/>
  <fieldType name="pdouble" stored="true" indexed="true" multiValued="false" class="solr.TrieDoubleField" sortMissingLast="false" docValues="true"/>
  <fieldType name="bytes" stored="true" indexed="true" multiValued="false" class="solr.BinaryField" sortMissingLast="false"/>
  <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
  <fieldType name="ip" stored="true" indexed="true" multiValued="false" class="solr.StrField" sortMissingLast="true" docValues="false"/>
  <fieldType name="timestamp" stored="true" indexed="true" multiValued="false" class="solr.TrieLongField" sortMissingLast="false" docValues="true"/>
  <fieldType name="ignored" stored="true" indexed="true" multiValued="true" class="solr.StrField" sortMissingLast="false" docValues="false"/>
  <fieldType name="text_raw" class="solr.TextField"/>
</schema>
