Datatypes
Elasticsearch core types
Elasticsearch types are provided in lowercase:
- object: unless otherwise stated, objects are not included in parent or root
- long
- date
- bool
Text
Fields of type Text are mapped as follows:
{
    "type": "string",
    "index": "not_analyzed",
    "fields": {
        "fulltext": {
            "type": "string",
            "term_vector": "with_positions_offsets",
            "index_analyzer": "ez_text_fulltext_index_analyzer",
            "search_analyzer": "ez_text_fulltext_search_analyzer"
        },
        "phrase": {
            "type": "string",
            "term_vector": "with_positions_offsets",
            "index_analyzer": "ez_text_phrase_index_analyzer",
            "search_analyzer": "ez_text_fulltext_search_analyzer"
        },
        "token": {
            "type": "string",
            "term_vector": "with_positions_offsets",
            "analyzer": "ez_text_token_analyzer"
        }
    }
}String
Fields of type String are mapped as follows:
{
    "type": "string",
    "index": "not_analyzed",
    "fields": {
        "fulltext": {
            "type": "string",
            "term_vector": "with_positions_offsets",
            "index_analyzer": "ez_string_fulltext_index_analyzer",
            "search_analyzer": "ez_string_fulltext_search_analyzer"
        },
        "token": {
            "type": "string",
            "term_vector": "with_positions_offsets",
            "analyzer": "ez_string_token_analyzer"
        }
    }
}L10n
L10n fields are a structure holding a Text field for each language. Additionally, they have a “sort” field in order to sort them according to the rules of each language:
{
    "<lang>": {
        "type": "string",
        "index": "not_analyzed",
        "fields": {
            "fulltext": {
                "type": "string",
                "term_vector": "with_positions_offsets",
                "index_analyzer": "ez_text_fulltext_index_analyzer",
                "search_analyzer": "ez_text_fulltext_search_analyzer"
            },
            "phrase": {
                "type": "string",
                "term_vector": "with_positions_offsets",
                "index_analyzer": "ez_text_phrase_index_analyzer",
                "search_analyzer": "ez_text_fulltext_search_analyzer"
            },
            "sort": {
                "type": "string",
                "term_vector": "with_positions_offsets",
                "index_analyzer": "sort_de-DE"
            },
            "token": {
                "type": "string",
                "term_vector": "with_positions_offsets",
                "analyzer": "ez_text_token_analyzer"
            }
        }
    },
    ... // for each language
}Changelog
The changelog contains an array of entries. That means that most search queries will only be meaningful as nested search elements.
However, a direct search is also possible because it is mapped with include_in_parent.
See here for a description of the fields:
| Field | Datatype | 
|---|---|
| batch_id | long | 
| operation | string | 
| schema_version | long | 
| time | date | 
| version | long | 
| current_version | bool | 
| user | object | 
| ↦ _id | long | 
| groups | long | 
| comment | Text |