Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
252 lines (201 sloc) 8.96 KB
0.52 2015-11-19
Adjusted to work with Search::Elasticsearch v2.00
Elastic::Model is not compatible with Elasticsearch 2.x.
Search::Elasticsearch, however, defaults to using a 2.x compatible
client: 2_0::Direct. You should specify
the client version explicitly when creating a Search::Elasticsearch instance:
use Search::Elasticsearch;
use MyApp;
my $es = Search::Elasticsearch->new(
client => '1_0::Direct', #### explicit client ####
nodes => [ "", ""]
my $model = MyApp->new( es => $es )
0.51 2015-05-25
Require Search::Elasticsearch v1.20
0.50 2014-08-17
This is the first version of Elastic::Model with support for
Elasticsearch 1.x and above. It uses Search::Elasticsearch
instead of Search::Elasticsearch::Compat.
See Elastic::Manual::Delta for info about the compatibility
mode which allows connecting to 0.90.x and 1.x nodes using
the same code.
* support for aggregations in 1.x
* on_success added to Bulk
* omit_norms
* omit_term_freq_and_positions
Deprecated field attributes:
* field-level boost
* index_name
* path
* precision_step
0.29_2 2014-07-01
Also accept 0_90 clients
0.29_1 2014-06-01
Migrated to Search::Elasticsearch and made it run
on Elasticsearch 1.x. No doc updates yet, no new features
exposed yet.
Breaking changes:
* omit_norms and omit_term_freq_positions no longer supported
* ignore_missing should be replaced by ignore => 404
* get mapping responses have changed
0.28 2013-03-06
Elastic::Model now requires Search::Elasticsearch::Compat
Updated links to the website.
0.27 2013-10-24
Elastic::Model now requires Elasticsearch::Compat instead of
0.26 2013-05-08
Upgraded to v0.65
Calls to non-existent indices/aliases throws a 404 in v0.90
0.25 2013-02-26
Made Test::Strict an author only test
0.24 2013-01-04
- has_changed was failing when comparing attributes that contained
- Fixed tests for SearchBuilder that were failing with the new
hash changes in perl 5.17
- update_mapping and delete_mapping now accept optional \%args
which get passed on to
0.23 2012-11-23
Doc corrections
0.22 2012-11-22
- Add specific mapping for Maybe[Bool] which treats undef values
as NULL / missing, while Bool fields still treat undef as false.
0.21 2012-11-17
- Model metaclass attributes were being initialized from the same
hashrefs, meaning that data (eg types in a namespace) were shared
between independent models.
Thanks to AMIRI for reporting
0.20 2012-11-16
- has_changed() and old_values() was implemented with triggers on
every doc class attribute. This was buggy because
1) it wasn't applied to attributes from roles
2) it didn't check arrays/hashes correctly
3) it was slow
We now handle all of the above correctly, by comparing canonical
versions of the deflated object with the data loaded from ES.
has_changed() was called by save() to prevent saving if the
object hadn't actually changed. We no longer do this - if you
call save(), your object will be saved. If you want to run this
check yourself, you can do:
$doc->save if $doc->has_changed;
old_value() has been removed because it requires old_values() to
build a comparison of all attributes that have changed, so it
is more efficient to just call old_values() once, eg:
$old = $doc->old_values;
if (exists $old->{foo}) {...}
if (exists $old->{bar}) {...}
- added apply_field_settings() to Elastic::Doc to make it easier
to configure attributes applied from roles, when you may not
have edit access to the role itself.
0.19 2012-11-15
- Inflators and deflators are now inlined whenever possible, resulting
in a big performance boost
0.18 2012-11-14
- Optimized UID and stub object creation - big performance improvement
when retrieving docs from elasticsearch
0.17 2012-11-09
- handle empty queryb/fiterb/post_filterb clauses gracefully
0.16 2012-11-06
- removed the to_cache() method that was added in v0.15
- added integration with a CHI-compatible cache for bounded searches
0.15 2012-11-02
- the default values for wrapper/multi_wrapper in Iterator were
not being returned as code refs
- added to_cache() to Elastic::Model::Results to return a cacheable
data structure which can later be reinflated to the full result set
0.14 2012-11-01
- upgraded minimum ES version to 0.19.11 to take advantage of the
new match queries
- Added Elastic::Model::Bulk for bulk indexing of documents.
0.13 2012-10-10
- UIDs from search results were missing the routing value
- use Elastic::Doc on 'extend'ed classes didn't work as expected
- Minimum version of Moose set to 2.06
0.12 2012-09-22
- Added support for retrieving partial objects (thanks to DIEGOK
for suggesting)
- Improved documentation (thanks to TIMB)
0.11 2012-08-18
- Variable::Magic v 0.51 allows us to remove the magic after inflating
a stub object - thanks to VPIT for the new version
0.10 2012-08-15
- Declare a minimum version for ElasticSearch::SearchBuilder
0.09 2012-08-14
- Added terms_indexed_for_field() to Elastic::Model::Role::Doc to aid
- Added id() and type() convenience methods on Elastic::Model::Role::Doc
which call the equivalent method on the doc's UID
- Changed the mapping for UIDs to use the full path name, not
'just_name'. * REQUIRES REINDEXING *
This fixes a major bug where all Doc class attributes in an object
were being indexed in the same fields, so it was impossible to
distinguish a search for (mother => $user) from (father => $user).
Unfortunately, this means it is no longer possible to search for just
any UID using queryb($uid), as it now needs the full path name for
the attribute, eg queryb( 'user.partner' => $user ).
Consequently, I've also had to change the Index->repoint_uids
to search in all possible UID attributes.
0.08 2012-08-09
- added a transform() parameter to reindex() to allow the user to
change the data structure while reindexing
- don't try to destroy scopes during global shutdown
- reindex() was loading all docs into memory, rather than processing
them in blocks
0.07 2012-08-02
- Added Elastic::Model::SearchBuilder to automatically serialize
queries/filters like ->filterb( user => $user_doc )
or ->filterb( $uid )
0.06 2012-08-02
- The unique key was using the attribute name, rather than
the unique key name.
0.05 2012-08-01
- Added support for unique_keys via ElasticSearchX::UniqueKey
- Added a Keyword type to be used for not_analyzed string fields
- Handle stub doc inflation using Variable::Magic instead of
wrapping _inline_instance_* in Moose
- Lazy attributes weren't being built properly during deflation
0.04 2012-07-25
overwrite() should work for new docs as well as docs loaded from ES
on_conflict() called with $doc->create doesn't get a version number,
so just load the existing doc
0.03 2012-07-08
Skip parts of the test suite which require a live cluster to run
0.02 2012-07-07
Removed the 'trial' flag. First public release.
0.01 2012-07-07
First release
Something went wrong with that request. Please try again.