forked from pat/thinking-sphinx
-
Notifications
You must be signed in to change notification settings - Fork 1
/
HISTORY
248 lines (235 loc) · 20.1 KB
/
HISTORY
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
2015-06-01: 3.1.4
* [FIX] Kaminari expects prev_page to be available.
* [CHANGE] Add a contributor code of conduct.
* [FEATURE] Add JSON as a Sphinx type for attributes (Daniel Vandersluis).
* [CHANGE] Remove polymorphic association and HABTM query support (when related to Thinking Sphinx) when ActiveRecord 3.2 is involved.
* [FIX] Don't try to delete guard files if they don't exist (@exAspArk).
* [FEATURE] minimal_group_by? can now be set in config/thinking_sphinx.yml to automatically apply to all index definitions.
* [FIX] Handle database settings reliably, now that ActiveRecord 4.2 uses strings all the time.
* [FIX] More consistent with escaping table names.
* [CHANGE] Remove default charset_type - no longer required for Sphinx 2.2.
* [FIX] Bug fix for association creation (with polymophic fields/attributes).
* [CHANGE] Removing sql_query_info setting, as it's no longer used by Sphinx (nor is it actually used by Thinking Sphinx).
2015-01-21: 3.1.3
* [CHANGE] Log excerpt SphinxQL queries just like the search queries.
* [CHANGE] Load Railtie if Rails::Railtie is defined, instead of just Rails (Andrew Cone).
* [CHANGE] Convert raw Sphinx results to an array when querying (Bryan Ricker).
* [FIX] Generate de-polymorphised associations properly for Rails 4.2
* [FIX] Use reflect_on_association instead of reflections, to stick to the public ActiveRecord::Base API.
* [FIX] Don't load ActiveRecord early - fixes a warning in Rails 4.2.
* [FEATURE] Allow for custom offset references with the :offset_as option - thus one model across many schemas with Apartment can be treated differently.
* [FEATURE] Allow for custom IndexSet classes.
* [FIX] Don't double-up on STI filtering, already handled by Rails.
* [CHANGE] Add bigint support for real-time indices, and use bigints for the sphinx_internal_id attribute (mapped to model primary keys) (Chance Downs).
2014-11-04: 3.1.2
* [CHANGE] regenerate task now only deletes index files for real-time indices.
* [CHANGE] Raise an exception when a populated search query is modified (as it can't be requeried).
* [FEATURE] Allow for custom paths for index files using :path option in the ThinkingSphinx::Index.define call.
* [FIX] Ensure indexing guard files are removed when an exception is raised (Bobby Uhlenbrock).
* [FIX] Don't update real-time indices for objects that are not persisted (Chance Downs).
* [FEATURE] Allow the binlog path to be an empty string (Bobby Uhlenbrock).
* [FIX] Use STI base class for polymorphic association replacements.
* [FIX] Convert database setting keys to symbols for consistency with Rails (@dimko).
* [FIX] Field weights and other search options are now respected from set_property.
* [CHANGE] Log indices that aren't processed due to guard files existing.
* [FEATURE] Add status task to report on whether Sphinx is running.
* [FIX] Models with more than one index have correct facet counts (using Sphinx 2.1.x or newer).
* [FEATURE] Real-time index callbacks can take a block for dynamic scoping.
* [FIX] Some association fixes for Rails 4.1.
* [CHANGE] Paginate records by 1000 results at a time when flagging as deleted.
* [CHANGE] Default the Capistrano TS Rails environment to use rails_env, and then fall back to stage.
* [CHANGE] rebuild task uses clear between stopping the daemon and indexing.
* [FIX] Clear connections when raising connection errors.
* [FEATURE] Allow casting of document ids pre-offset as bigints (via big_documents_id option).
2014-04-22: 3.1.1
* [CHANGE] Include full statements when query execution errors are raised (uglier, but more useful when debugging).
* [FEATURE] Allow for common section in generated Sphinx configuration files for Sphinx 2.2.x (disabled by default, though) (Trevor Smith).
* [FEATURE] Basic support for HABTM associations and MVAs with query/ranged-query sources.
* [CHANGE] Connection error messages now mention Sphinx, instead of just MySQL.
* [FIX] Don't apply attribute-only updates to real-time indices.
* [FIX] Don't instantiate blank strings (via inheritance type columns) as constants.
* [FIX] Don't presume all indices for a model have delta pairs, even if one does.
* [CHANGE] Raise an exception when a referenced column does not exist.
* [CHANGE] Capistrano tasks use thinking_sphinx_rails_env (defaults to standard environment) (Robert Coleman).
* [FIX] Always use connection options for connection information.
* [FIX] respond_to? works reliably with masks (Konstantin Burnaev).
* [FEATURE] Real-time indices callbacks can be disabled (useful for unit tests).
* [FEATURE] ThinkingSphinx::Test has a clear method and no-index option for starting for real-time setups.
* [FIX] Avoid null values in MVA query/ranged-query sources.
* [CHANGE] Alias group and count columns for easier referencing in other clauses.
* [FEATURE] Allow disabling of distributed indices.
* [FIX] Don't send unicode null characters to real-time Sphinx indices.
* [FIX] :populate option is now respected for single-model searches.
* [FIX] :thinking_sphinx_roles is now used consistently in Capistrano v3 tasks.
* [CHANGE] Log real-time index updates (Demian Ferreiro).
* [FIX] Only expand log directory if it exists.
* [FIX] Handle JDBC connection errors appropriately (Adam Hutchison).
* [FIX] Fixing wildcarding of Unicode strings.
* [CHANGE] All indices now respond to a public attributes method.
* [FIX] Improved handling of association searches with real-time indices, including via has_many :though associations (Rob Anderton).
2014-01-11: 3.1.0
* [CHANGE] Updating Riddle requirement to >= 1.5.10.
* [CHANGE] Extracting join generation into its own gem: Joiner.
* [FEATURE] Support for Capistrano v3 (Alexander Tipugin).
* [FEATURE] JRuby support (with Sphinx 2.1 or newer).
* [CHANGE] Geodist calculation is now prepended to the SELECT statement, so it can be referred to by other dynamic attributes.
* [FIX] Indices will be detected in Rails engines upon configuration.
* [FEATURE] Support for Sphinx 2.2.x's HAVING and GROUP N BY SphinxQL options.
* [FEATURE] Adding max_predicted_time search option (Sphinx 2.2.x).
* [FEATURE] Wildcard/starring can be applied directly to strings using ThinkingSphinx::Query.wildcard('pancakes'), and escaping via ThinkingSphinx::Query.escape('pancakes').
* [CHANGE] Auto-wildcard/starring (via :star => true) now treats escaped characters as word separators.
* [FEATURE] Capistrano recipe now includes tasks for realtime indices.
* [CHANGE] Capistrano recipe no longer automatically adds thinking_sphinx:index and thinking_sphinx:start to be run after deploy:cold.
* [CHANGE] UTF-8 forced encoding is now disabled by default (in line with Sphinx 2.1.x).
* [CHANGE] Sphinx functions are now the default, instead of the legacy special variables (in line with Sphinx 2.1.x).
* [CHANGE] Rails 3.1 is no longer supported.
* [CHANGE] MRI 1.9.2 is no longer supported.
* [FIX] Destroy callbacks are ignored for non-persisted objects.
* [FEATURE] :group option within :sql options in a search call is passed through to the underlying ActiveRecord relation (Siarhei Hanchuk).
* [FIX] Blank STI values are converted to the parent class in Sphinx index data (Jonathan Greenberg).
* [CHANGE] Insist on at least * for SphinxQL SELECT statements.
* [FIX] Track indices on parent STI models when marking documents as deleted.
* [FEATURE] Persistent connections can be disabled if you wish.
* [FIX] Separate per_page/max_matches values are respected in facet searches (Timo Virkkala).
* [FIX] Don't split function calls when casting timestamps (Timo Virkalla).
* [FEATURE] Track what's being indexed, and don't double-up while indexing is running. Single indices (e.g. deltas) can be processed while a full index is happening, though.
* [FEATURE] Pass through :delta_options to delta processors (Timo Virkalla).
* [FEATURE] All delta records can have their core pairs marked as deleted after a suspended delta (use ThinkingSphinx::Deltas.suspend_and_update instead of ThinkingSphinx::Deltas.suspend).
* [CHANGE] Reset the delta column to true after core indexing is completed, instead of before, and don't filter out delta records from the core source.
* [FEATURE] Set custom database settings within the index definition, using the set_database method. A more sane approach with multiple databases.
* [CHANGE] Provide a distributed index per model that covers both core and delta indices.
2013-10-20: 3.0.6
* [FEATURE] Raise an error if no indices match the search criteria (Bryan Ricker).
* [FEATURE] skip_time_zone setting is now available per environment via config/thinking_sphinx.yml to avoid the sql_query_pre time zone command.
* [CHANGE] Updating Riddle dependency to be >= 1.5.9.
* [FEATURE] Added new search options in Sphinx 2.1.x.
* [FEATURE] Added ability to disable UTF-8 forced encoding, now that Sphinx 2.1.2 returns UTF-8 strings by default. This will be disabled by default in Thinking Sphinx 3.1.0.
* [FEATURE] Added ability to switch between Sphinx special variables and the equivalent functions. Sphinx 2.1.x requires the latter, and that behaviour will become the default in Sphinx 3.1.0.
* [FIX] Cast every column to a timestamp for timestamp attributes with multiple columns.
* [CHANGE] Separated directory preparation from data generation for real-time index (re)generation tasks.
* [CHANGE] Have tests index UTF-8 characters where appropriate (Pedro Cunha).
* [FIX] Don't use Sphinx ordering if SQL order option is supplied to a search.
* [CHANGE] Always use DISTINCT in group concatenation.
* [CHANGE] Sphinx connection failures now have their own class, ThinkingSphinx::ConnectionError, instead of the standard Mysql2::Error.
* [FIX] Custom middleware and mask options now function correctly with model-scoped searches.
* [FEATURE] Adding search_for_ids on scoped search calls.
* [CHANGE] Don't clobber custom :select options for facet searches (Timo Virkkala).
* [CHANGE] Automatically load Riddle's Sphinx 2.0.5 compatability changes.
* [FIX] Suspended deltas now no longer update core indices as well.
* [CHANGE] Realtime fields and attributes now accept symbols as well as column objects, and fields can be sortable (with a _sort prefix for the matching attribute).
* [FEATURE] MySQL users can enable a minimal GROUP BY statement, to speed up queries: set_property :minimal_group_by? => true.
* [CHANGE] Insist on the log directory existing, to ensure correct behaviour for symlinked paths. (Michael Pearson).
* [FIX] Use alphabetical ordering for index paths consistently (@grin).
* [FIX] Convert very small floats to fixed format for geo-searches.
* [CHANGE] Rake's silent mode is respected for indexing (@endoscient).
2013-08-26: 3.0.5
* [CHANGE] Updating Riddle dependency to be >= 1.5.8.
* [FEATURE] Allow scoping of real-time index models.
* [CHANGE] Real-time index population presentation and logic are now separated.
* [CHANGE] Using the connection pool for update callbacks, excerpts, deletions.
* [FIX] Respect existing sql_query_range/sql_query_info settings.
* [CHANGE] Don't add the sphinx_internal_class_name unless STI models are indexed.
* [FIX] Don't add select clauses or joins to sql_query if they're for query/ranged-query properties.
* [CHANGE] Use Mysql2's reconnect option and have it turned on by default.
* [FIX] Set database timezones as part of the indexing process.
* [CHANGE] Improved auto-starring with escaped characters.
* [FIX] Chaining scopes with just options works again.
2013-07-09: 3.0.4
* [CHANGE] Updating Riddle dependency to be >= 1.5.7.
* [FEATURE] ts:regenerate rake task for rebuilding Sphinx when realtime indices are involved.
* [FEATURE] ts:clear task removes all Sphinx index and binlog files.
* [CHANGE] Glaze now responds to respond_to? (@groe).
* [FEATURE] Facet search calls now respect the limit option (which otherwise defaults to max_matches) (Demian Ferreiro).
* [FEATURE] Excerpts words can be overwritten with the words option (@groe).
* [FIX] Empty queries with the star option set to true are handled gracefully.
* [CHANGE] Deleted ActiveRecord objects are deleted in realtime indices as well.
* [CHANGE] Realtime callbacks are no longer automatically added, but they're now more flexible (for association situations).
* [CHANGE] Cleaning and refactoring so Code Climate ranks this as A-level code (Philip Arndt, Shevaun Coker, Garrett Heinlen).
* [FIX] Excerpts are now wildcard-friendly.
* [FIX] Facet searches now use max_matches value (with a default of 1000) to ensure as many results as possible are returned.
* [CHANGE] Exceptions raised when communicating with Sphinx are now mentioned in the logs when queries are retried (instead of STDOUT).
* [CHANGE] Excerpts now use just the query and standard conditions, instead of parsing Sphinx's keyword metadata (which had model names in it).
* [FIX] The settings cache is now cleared when the configuration singleton is reset (Pedro Cunha).
* [FEATURE] The :facets option can be used in facet searches to limit which facets are queried.
* [FIX] Escaped @'s in queries are considered part of each word, instead of word separators.
* [FIX] Internal class name conditions are ignored with auto-starred queries.
* [FEATURE] A separate role can be set for Sphinx actions with Capistrano (Andrey Chernih).
* [FIX] RDoc doesn't like constant hierarchies split over multiple lines.
* [CHANGE] Get database connection details from ActiveRecord::Base, not each model, as this is where changes are reflected.
* [CHANGE] Default Sphinx scopes are applied to new facet searches.
* [FEATURE] Facet searches can now be called from Sphinx scopes.
2013-05-07: 3.0.3
* [CHANGE] Updating Riddle dependency to be >= 1.5.6
* [FEATURE] INDEX_ONLY environment flag is passed through when invoked through Capistrano (Demian Ferreiro).
* [FEATURE] use_64_bit option returns as cast_to_timestamp instead (Denis Abushaev).
* [FIX] Update to association handling for Rails/ActiveRecord 4.0.0.rc1.
* [CHANGE] Delta jobs get common classes to allow third-party delta behaviours to leverage Thinking Sphinx.
* [FEATURE] Collection of hooks (lambdas) that get called before indexing. Useful for delta libraries.
* [FIX] Cast and concatenate multi-column attributes correctly.
* [FIX] Don't load fields or attributes when building a real-time index - otherwise the index is translated before it has a chance to be built.
* [CHANGE] Raise ThinkingSphinx::MixedScopesError if a search is called through an ActiveRecord scope.
* [FIX] Default search panes are cloned for each search.
* [FIX] Index-level settings (via set_property) are now applied consistently after global settings (in thinking_sphinx.yml).
* [FIX] All string values returned from Sphinx are now properly converted to UTF8.
* [CHANGE] GroupEnumeratorsMask is now a default mask, as masks need to be in place before search results are populated/the middleware is called (and previously it was being added within a middleware call).
* [FIX] The default search masks are now cloned for each search, instead of referring to the constant (and potentially modifying it often).
* [CHANGE] The current_page method is now a part of ThinkingSphinx::Search, as it is used when populating results.
2013-03-23: 3.0.2
* [CHANGE] per_page now accepts an optional paging limit, to match WillPaginate's behaviour. If none is supplied, it just returns the page size.
* [FEATURE] Ruby 2.0 support.
* [FEATURE] Rails 4.0.0 beta1 support.
* [FIX] :utf8? option within index definitions is now supported, and defaults to true if the database configuration's encoding is set to 'utf8'.
* [FIX] indices_location and configuration_file values in thinking_sphinx.yml will be applied to the configuration.
* [CHANGE] Strings and regular expressions in ThinkingSphinx::Search::Query are now treated as UTF-8.
* [FIX] Primary keys that are not 'id' now work correctly.
* [CHANGE] Setting a custom framework will rebuild the core configuration around its provided settings (path and environment).
* [CHANGE] Search masks don't rely on respond_to?, and so Object/Kernel methods are passed through to the underlying array instead.
* [FIX] Search options specified in index definitions and thinking_sphinx.yml are now used in search requests (eg: max_matches, field_weights).
* [FEATURE] Indexes defined in app/indices in engines are now loaded (Antonio Tapiador del Dujo).
* [FIX] Custom association conditions are no longer presumed to be an array.
* [CHANGE] Empty search conditions are now ignored, instead of being appended with no value (Nicholas Klick).
* [CHANGE] Custom conditions are no longer added to the sql_query_range value, as they may involve associations.
* [FIX] Capistrano tasks use the correct ts rake task prefix (David Celis).
* [FEATURE] Query errors are classified as such, instead of getting the base SphinxError.
2013-02-04: 3.0.1
* [FEATURE] Provide Capistrano deployment tasks (David Celis).
* [FEATURE] Allow specifying of Sphinx version. Is only useful for Flying Sphinx purposes at this point - has no impact on Riddle or Sphinx.
* [FEATURE] Support new JDBC configuration style (when JDBC can be used) (Kyle Stevens).
* [FIX] Referring to associations via polymorphic associations in an index definition now works.
* [FEATURE] Mysql2::Errors are wrapped as ThinkingSphinx::SphinxErrors, with subclasses of SyntaxError and ParseError used appropriately. Syntax and parse errors do not prompt a retry on a new connection.
* [CHANGE] Use connection pool for search queries. If a query fails, it will be retried on a new connection before raising if necessary.
* [CHANGE] Glaze always passes methods through to the underlying ActiveRecord::Base object if they don't exist on any of the panes.
* [FIX] Don't override foreign keys for polymorphic association replacements.
* [FIX] Quote namespaced model names in class field condition.
* [FEATURE] Polymorphic associations can be used within index definitions when the appropriate classes are set out.
* [FEATURE] Allow custom strings for SQL joins in index definitions.
* [FIX] New lines are maintained and escaped in custom source queries.
* [FIX] Subclasses of indexed models fire delta callbacks properly.
* [FIX] Thinking Sphinx can be loaded via thinking/sphinx, to satisfy Bundler.
* [FEATURE] indexer and searchd settings are added to the appropriate objects from config/thinking_sphinx.yml (@ygelfand).
* [FIX] New lines are maintained and escaped in sql_query values.
2013-01-02: 3.0.0
* [CHANGE] Updating Riddle dependency to 1.5.4.
* [FIX] Respect source options as well as underlying settings via the set_property method in index definitions.
* [FIX] Load real-time index definitions when listing fields, attributes, and/or conditions.
* [CHANGE] UTF-8 is now the default charset again (as it was in earlier Thinking Sphinx versions).
* [FEATURE] Initial realtime index support, including the ts:generate task for building index datasets. Sphinx 2.0.6 is required.
* [CHANGE] Removing ts:version rake task.
* [FEATURE] SphinxQL connection pooling via the Innertube gem.
2012-12-22: 3.0.0.rc
* [FEATURE] Source type support (query and ranged query) for both attributes and fields. Custom SQL strings can be supplied as well.
* [FEATURE] Wordcount attributes and fields now supported.
* [FEATURE] Support for Sinatra and other non-Rails frameworks.
* [FEATURE] A sphinx scope can be defined as the default.
* [FEATURE] An index can have multiple sources, by using define_source within the index definition.
* [FEATURE] sanitize_sql is available within an index definition.
* [FEATURE] Providing :prefixes => true or :infixes => true as an option when declaring a field means just the noted fields have infixes/prefixes applied.
* [FEATURE] ThinkingSphinx::Search#query_time returns the time Sphinx took to make the query.
* [FEATURE] Namespaced model support.
* [FEATURE] Default settings for index definition arguments can be set in config/thinking_sphinx.yml.
* [FIX] Correctly escape nulls in inheritance column (Darcy Laycock).
* [FIX] Use ThinkingSphinx::Configuration#render_to_file instead of ThinkingSphinx::Configuration#build in test helpers (Darcy Laycock).
* [FIX] Suppressing delta output in test helpers now works (Darcy Laycock).
* [FEATURE] A custom Riddle/Sphinx controller can be supplied. Useful for Flying Sphinx to have an API layer over Sphinx commands, without needing custom gems for different Thinking Sphinx/Flying Sphinx combinations.
2012-10-06: 3.0.0.pre
* First pre-release. Not quite feature complete, but the important stuff is certainly covered. See the README for more the finer details.