The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Elastic::Model::TypeMap::ES - Type maps for ElasticSearch-specific types

VERSION

version 0.52

DESCRIPTION

Elastic::Model::TypeMap::ES provides mapping, inflation and deflation for Elasticsearch specific types.

TYPES

Elastic::Model::Types::Keyword

Attributes of type "Keyword" in Elastic::Model::Types are in/deflated via "Any" in Elastic::Model::TypeMap::Moose and are mapped as:

    {
        type   => 'string',
        index  => 'not_analyzed'
    }

It is a suitable type to use for string attributes which should not be analyzed, and will not be used for scoring. Rather they are suitable to use as filters.

Elastic::Model::Types::UID

An Elastic::Model::UID is deflated into a hash ref and reinflated via "new_from_store()" in Elastic::Model::UID. It is mapped as:

    {
        type        => 'object',
        dynamic     => 'strict',
        path        => 'path',
        properties  => {
            index   => {
                type  => 'string',
                index => 'not_analyzed'
            },
            type => {
                type  => 'string',
                index => 'not_analyzed'
            },
            id   => {
                type  => 'string',
                index => 'not_analyzed'
            },
            routing   => {
                type  => 'string',
                index => 'no'
            },
        }
    }

Elastic::Model::Types::GeoPoint

Attributes of type "GeoPoint" in Elastic::Model::Types are mapped as { type => 'geo_point' }.

Elastic::Model::Types::Binary

Attributes of type "Binary" in Elastic::Model::Types are deflated via "encode_base64" in MIME::Base64 and inflated via "decode_base_64" in MIME::Base64. They are mapped as { type => 'binary' }.

Elastic::Model::Types::Timestamp

Attributes of type "Timestamp" in Elastic::Model::Types are deflated to epoch milliseconds, and inflated to epoch seconds (with floating-point milliseconds). It is mapped as { type => 'date' }.

Note: When querying timestamp fields in a View you will need to express the comparison values as epoch milliseconds or as an RFC3339 datetime:

    { my_timestamp => { '>' => 1351748867 * 1000      }}
    { my_timestamp => { '>' => '2012-11-01T00:00:00Z' }}

AUTHOR

Clinton Gormley <drtech@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Clinton Gormley.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.