-
Notifications
You must be signed in to change notification settings - Fork 8
/
Changes
161 lines (134 loc) · 6.15 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
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