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 => [ "192.168.1.100:9200", "192.168.1.101:9200"]
);
my $model = MyApp->new( es => $es )
0.51 2015-05-25
Require Search::Elasticsearch v1.20
0.50 2014-08-17
********************************
BREAKING BACKWARDS COMPATIBILITY
********************************
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.
Added:
* support for aggregations in 1.x
* on_success added to Bulk
Removed:
* 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
See http://github.com/elasticsearch/elasticsearch-perl/issues/20
Updated links to the elasticsearch.org website.
0.27 2013-10-24
Elastic::Model now requires Elasticsearch::Compat instead of
ElasticSearch.
0.26 2013-05-08
Upgraded ElasticSearch.pm 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
BUG FIX
- has_changed was failing when comparing attributes that contained
references.
- Fixed tests for SearchBuilder that were failing with the new
hash changes in perl 5.17
ENHANCEMENT
- update_mapping and delete_mapping now accept optional \%args
which get passed on to ElasticSearch.pm
0.23 2012-11-23
Doc corrections
0.22 2012-11-22
ENHANCEMENT
- 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
BUG FIX
- 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
BREAKING CHANGE
- 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}) {...}
ENHANCEMENT
- 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
ENHANCEMENT
- Inflators and deflators are now inlined whenever possible, resulting
in a big performance boost
0.18 2012-11-14
ENHANCEMENT
- Optimized UID and stub object creation - big performance improvement
when retrieving docs from elasticsearch
0.17 2012-11-09
ENHANCMENT
- handle empty queryb/fiterb/post_filterb clauses gracefully
0.16 2012-11-06
BREAKING CHANGE:
- removed the to_cache() method that was added in v0.15
ENHANCEMENT:
- added integration with a CHI-compatible cache for bounded searches
0.15 2012-11-02
BUG FIX:
- the default values for wrapper/multi_wrapper in Iterator were
not being returned as code refs
ENHANCEMENT:
- 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
BREAKING CHANGE:
- upgraded minimum ES version to 0.19.11 to take advantage of the
new match queries
ENHANCEMENT:
- Added Elastic::Model::Bulk for bulk indexing of documents.
0.13 2012-10-10
BUG FIXES:
- 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
ENHANCEMENT:
- Added support for retrieving partial objects (thanks to DIEGOK
for suggesting)
- Improved documentation (thanks to TIMB)
0.11 2012-08-18
ENHANCEMENT:
- 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
BUG FIX:
- Declare a minimum version for ElasticSearch::SearchBuilder
0.09 2012-08-14
ENHANCEMENT:
- Added terms_indexed_for_field() to Elastic::Model::Role::Doc to aid
debugging.
- Added id() and type() convenience methods on Elastic::Model::Role::Doc
which call the equivalent method on the doc's UID
BUG FIX:
- 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
ENHANCEMENT:
- added a transform() parameter to reindex() to allow the user to
change the data structure while reindexing
BUG FIX:
- 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
ENHANCEMENT:
- Added Elastic::Model::SearchBuilder to automatically serialize
queries/filters like ->filterb( user => $user_doc )
or ->filterb( $uid )
0.06 2012-08-02
BUG:
- The unique key was using the attribute name, rather than
the unique key name.
0.05 2012-08-01
ENHANCMENTS:
- 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
BUG FIXES:
- 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