NAME
Elastic::Model::Meta::Class::Model - A meta-class for Models
VERSION
version 0.51
DESCRIPTION
Holds static information about your model: namespaces and their types, and char_filters, tokenizers, filters and analyzers for analysis.
You shouldn't need to use this class directly. Everything you need should be accessible via Elastic::Model or Elastic::Model::Role::Model.
METHODS
is_default()
$bool = $meta->is_default($type => $name);
Returns true
if $name
is a $type
(analyzer, tokenizer, filter, char_filter) available in Elasticsearch by default.
Default analyzers
standard, simple, whitespace, stop, keyword, pattern, snowball, and the language analyzers: arabic
, armenian
, basque
, brazilian
, bulgarian
, catalan
, chinese
, cjk
, czech
, danish
, dutch
, english
, finnish
, french
, galician
, german
, greek
, hindi
, hungarian
, indonesian
, italian
, latvian
, norwegian
, persian
, portuguese
, romanian
, russian
, spanish
, swedish
, thai
, turkish
Default tokenizers
edge_ngram, keyword, letter, lowercase, ngram, path_hierarchy, pattern, standard, uax_url_email, whitespace
Default token filters
asciifolding, dictionary_decompounder, edge_ngram, elision, hyphenation_decompounder, icu_collation, icu_folding, icu_normalizer, kstem, length, lowercase, ngram, pattern_replace, phonetic, porterStem, reverse, shingle, snowball, standard, stop, synonym, trim, truncate, unique, word_delimiter
Default character filters
analysis_for_mappings()
$analysis = $meta->analysis_for_mappings($mappings)
Used to generate the analysis
settings for an index, based on which analyzers are used in the mappings
for all types
in the index.
wrapped_class_name()
$new_class = $meta->wrapped_class_name($old_class);
Generates a semi-anonymous classname with the format Elastic::Model::__WRAPPED_::$n
ATTRIBUTES
namespaces
\%namespaces = $meta->namespaces;
\%namespace = $meta->namespace($name);
$bool = $meta->has_namespace($name);
@names = $meta->all_namespaces;
A hash ref containing all namespaces plus their configuration, eg:
{
myapp => {
types => {
user => 'MyApp::User'
}
}
}
unique_index
$index = $meta->unique_index
The name of the index where unique keys will be stored, which defaults to unique_key
. A different value can be specified with has_unique_index.
See Elastic::Manual::Attributes::Unique for more.
analyzers
\%analyzers = $meta->analyzers;
\%analyzer = $meta->analyzer($name);
$bool = $meta->has_analyzer($name);
@names = $meta->all_analyzers;
A hash ref containing all analyzers plus their configuration, eg:
{
my_analyzer => {
type => 'custom',
tokenizer => 'standard',
filter => ['lower']
}
}
tokenizers
\%tokenizers = $meta->tokenizers;
\%tokenizer = $meta->tokenizer($name);
$bool = $meta->has_tokenizer($name);
@names = $meta->all_tokenizers;
A hash ref containing all tokenizers plus their configuration, eg:
{
my_tokenizer => {
type => 'pattern',
pattern => '\W'
}
}
filters
\%filters = $meta->filters;
\%filter = $meta->filter($name);
$bool = $meta->has_filter($name);
@names = $meta->all_filters;
A hash ref containing all filters plus their configuration, eg:
{
my_filter => {
type => 'edge_ngram',
min_gram => 1,
max_gram => 20
}
}
char_filters
\%char_filters = $meta->char_filters;
\%char_filter = $meta->char_filter($name);
$bool = $meta->has_char_filter($name);
@names = $meta->all_char_filters;
A hash ref containing all char_filters plus their configuration, eg:
{
my_char_filter => {
type => 'mapping',
mappings => ['ph=>f','qu=>q']
}
}
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.