2.0.14 - January 2nd 2013
* Fix model loading for Rails 3.2.9 when subdirectories exist (Kenn Ejima).
* Use BasicObject instead of BlankSlate when running on 1.9 (Steve Purcell).
* 1.4.14 changes.
2.0.13 - August 10th 2012
* 1.4.13 changes.
2.0.12 - May 14th 2012
* STI fix when generating WHERE clauses for sql_query.
* 1.4.12 changes.
2.0.11 - January 2nd 2012
* Call #all on search results to force population of results, matching ActiveRecord::Relation#all in essence. (Adrian Macneil).
* 1.4.11 changes.
2.0.10 - November 4th 2011
* 1.4.10 changes.
2.0.9 - October 10th 2011
* 1.4.9 changes (fixed invalid gemspec).
2.0.8 - October 10th 2011
* Actually looking at Rails engines paths for models (Eduardo Casanova).
* Ensuring associations for acts-as-taggable-on are tweaked for Rails 3.1 (Anthony).
* Bug fix for association collection proxies in Rails 3.1 (Pavel Forkert).
* References all known Rails model paths - better for Rails 3 Engines.
* Don't reload I18n anymore - the load order isn't an issue in Rails 3 or 3.1.
* Fixing attribute source queries for Rails 3.1.
* 1.4.8 changes
2.0.7 - August 29th 2011
* Making sure lib directory is actually a part of the gem. Oops.
2.0.6 - August 28th 2011
* Don't change superclass index definitions (otherwise sibling subclasses can end up with each others' index definitions).
* Improved scope support (Andrew White).
* Fixed association-filtered searches for Rails 3.1 (Andrew White).
* Fixed polymorphic association support for Rails 3.1 (Jonathan Viney).
* 1.4.7 changes.
2.0.5 - May 25th 2011
* Railtie equivalent for Sinatra.
* Rails 3.1 support (Florent Piteau).
* 1.4.6 changes.
2.0.4 - May 12th 2011
* Only determine Sphinx version when initializing Thinking Sphinx, instead of upon require.
* Still execute logged blocks for searching even when logging isn't enabled.
* 1.4.5 changes.
2.0.3 - April 3rd 2011
* 1.4.4 changes.
2.0.2 - January 13th 2011
* Improvement to loading the environment via Rake (Brenton Fletcher).
* 1.4.2 changes.
* 1.4.1 changes.
2.0.1 - November 19th 2011
* Intermittent as_json bug fix.
* Using Rails 3 logging system (Stephen Celis).
* Fixes for Rails 3.0.2 (Ivan Ukhov).
2.0.0 - November 14th 2011
* Handle has_many conditions defined as a hash (Artem Orlov).
* Deprecation fixes for logging (Anton Sozontov).
* Only load Thinking Sphinx if ActiveRecord is loaded (Matthew Higgins).
* Rails 3 support.
* 1.4.0 changes.
1.4.14 - January 2nd 2013
* Allow sql_query_pre values to come through from config/sphinx.yml (George Ogata).
* ThinkingSphinx::Search#tap doesn't delegate through to the underlying array.
* Use fire_delta? instance method in the model (if it exists) to decide whether indexing should happen.
* Use full query in excerpts so double-stemming of terms is avoided (Jason Rust).
* Fix thinking_sphinx:version rake task.
* Directly compare non-string non-nil facet values for facet filters.
* Don't bother checking with Sphinx whether documents exist when trying to update them. We're catching failures already (and Sphinx usually doesn't care anyway).
1.4.13 - August 10th 2012
* Sphinx 2.0.5 support.
* Hard retries for Sphinx exceptions (Andrew Hunter).
* Add support for association-filtered faceting (Andrew White).
* Cast PostgreSQL timestamps to their floored integers (instead of rounding up).
* Don't add array_accum to PostgreSQL v80311 (8.3.?) or newer.
1.4.12 - May 14th 2012
* Updating Riddle references to 1.5.2.
* Can explicitly specify available types for STI tables instead of automatically discovering them with "SELECT DISTINCT type FROM
" (Cedric Maion).
* Don't try to run rake tasks for Capistrano if there's no Rakefile - eg. on fresh deploys (Nathan Smith).
* Populate search results before comparing with #==.
* Can indicate whether Sphinx should use a socket for connections instead of TCP (Simon Hürlimann).
* Can have just attribute values returned as search results using `:attributes_only => true` in a search call (Andrew Hunter).
* Can specify additional local indices for the generated distributed index (usually one per model) (Andrew Hunter).
* Supporting Sphinx 2.0.4 (Ilia Lobsanov).
* Load MySQL SSL settings from database.yml (James Brooks).
* Adding Sphinx 2.0.3 support (identical to 2.1.0).
* Dropping Rails 1.2 and 2.0.x support.
* Association keys now are the association stacks as arrays - more reliable in Rubinius.
* Can now determine PostgreSQL versions with JRuby.
* Many testing tweaks.
* Allow for rank_expr option being passed through to Riddle.
1.4.11 - January 2nd 2012
* Handle no results for total_pages and total_entries with defaults of 0.
* No longer shuffle Sphinx addresses by default.
* Fix coalescing of non-char values in PostgreSQL (Matthew Barnett).
* Default database user for Sphinx configuration is now ENV['USER'], not root.
* Alias offset to offset_value for Kaminari.
* Sphinx 2.1.0-dev support.
1.4.10 - November 4th 2011
* Updating Riddle references for impending 1.5.0 release of Riddle.
* Handle out-of-date indexed_models references.
* Fixing STI model handling during context index loading (Kenn Ejima).
1.4.9 - October 10th 2011
* Fixing invalid gemspec.
1.4.8 - October 10th 2011
* Adding smart default (id) for primary key column name.
* Making error message when daemon fails to start a little more helpful (Tony Pitale).
* Adding ThinkingSphinx::Search#last_page? for Kaminari (Pete Deffendol).
* If ENV['NODETACH'] is set when calling ts:start, pass that flag through to Riddle to start Sphinx in the foreground (Aaron Gibralter).
* Catch and report all errors when models are loaded (Martin Gordon).
* Bringing in builder gem's BlankSlate for our Builder - better at keeping global Rake methods out of the way.
* Use PostgreSQL's array_agg function if it exists, instead of array_accum (PG v8.4 or newer).
* Shuffle multiple Sphinx addresses by default, but allow that to be turned off (Ngan Pham).
* Fix string attributes when using Sphinx 2.0.1 and bin_path.
1.4.7 - August 28th 2011
* Don't search for objects when updating attributes on every save - if the object isn't there, then the error will be caught anyway.
* Extra flexibility for association attribute references (Andrew White).
* Setting up test suite for Travis, and fixing tests across many rubies.
* Removing test for filtering on wordcount attribute - seems Sphinx doesn't like that.
* If many indices are searched on, only use the first for excerpts.
* Allow MVA facets from SQL strings that are all integers to skip object translation.
* Adding total_count method for better Kaminari support (Dan Pickett).
* Switching from Jeweler to Bundler for gem management.
* Cleaning up Context - re-using camelized class names.
* Simplified auto-star regex for 1.9 - no need to set the unicode flag.
* Don't update sphinx_internal_id attribute when updating a record's attributes.
* Ignore empty arrays for :without_ids (Jason Rust).
* Now catching Riddle::ResponseError when we aren't fussed about the responses from Sphinx.
* Distinguishing between Ruby 1.8 and 1.9 for auto-star regex (Andrew White).
* Don't re-index at the end of suspended_delta calls if requested.
* Adding stop_timeout setting to configure how long ts:stop should wait while checking whether Sphinx has stopped (Justin Tanner).
* Speed improvement for types_to_crcs (Josh Goebel).
* Adding a touched_reindex_file option, for a file that will be touched after indices are rotated (Rémi Prévost).
* Better support for the Mysql2 adapter (Andrew White).
* More pagination methods - next_page? and first_page?.
* Adding use_64_bit option to ensure all timestamp attributes are treated as 64 bit integers (Andrey Deryabin).
* Simpler, less brittle support for all Sphinx settings via Riddle (Clemens Kofler).
* Optimised start/stop behaviour in Capistrano recipe (Lars Weiler).
* Catch and ignore timeout errors for low priority requests.
* Don't double up on de-polymorphised associations for generated Sphinx source SQL queries.
1.4.6 - May 25th 2011
* Require Riddle 1.3.3 or better.
* Cast Sphinx document ids to 32bit integers to keep PostgreSQL happy when Sphinx is compiled for id64 support (Bruno Santschi).
* Making sure suspended_delta always exists on indexed models, whether indices have been defined or not.
* Workaround for ActsAsTaggableOn to ensure association joins work.
* Use Sphinx string attributes instead of class_crc integers to determine which class each search result is from (Sphinx 2.x or newer).
* String attribute support - and so, using this instead of str2ordinal for string sorting.
* Support for fields with paired string attributes and wordcount attributes (Sphinx 1.10-beta or newer).
* Support for file fields (Sphinx 1.10-beta or newer).
* Wordcount attribute support (Sphinx 1.10-beta or newer).
* Sinatra support is only used when Rails isn't loaded.
* Sphinx 2.0.x (including 2.0.2-dev) support.
* :without_any filtering option (the reverse of :with_all).
1.4.5 - May 12th 2011
* Require Riddle 1.3.2 or better.
* Improved 1.9.2 support
* Don't hack Array - make ThinkingSphinx::Search a subclass of Array instead.
* Distinguishing between suspended deltas and disabled deltas.
* Removing most Thread references, opting for Mutexes for better multi-threading support.
* Added support for client_key to allow for authenticated Sphinx communication.
* Sphinx 2.0.1 support.
* Don't try to translate nil values (Alex Chee).
* Performance fix for facets (Clemens Kofler).
* Use Sphinx 0.9.9 in Capistrano recipe (Konstantin Shabanov).
* Sinatra support (Patrick Tulskie).
* Offer sanitize_sql method within define_index blocks (Matt Todd).
* Performance fix: caching primary_key_for_sphinx value.
1.4.4 - April 3 2011
* Being consistent with === comparisons for Array monkeypatch.
* Kaminari pagination support.
* Ensure deltas are supported across multiple indices for a given model.
* Use custom index names for excerpts calls if that's what exists (Javier Ramírez).
* Allow for Sphinx versions compiled from source (Greg Weber).
* Ensuring thread is being required to allow Mutexes to work.
* Ensure primary_key_for_sphinx is inherited to subclasses (Robert Stern).
* Don't complain if there's an error when checking for documents in a given index.
1.4.3 - January 29th 2011
* Don't memoize the database adapter.
* Allow queries to just return specific attributes via the :only option, instead of ActiveRecord objects (Hans Hasselberg).
* Performance fix: Only add sphinx scopes to has_many associations if there are scopes in play (Kirill Maximov).
* Fixing CRC32 function for PostgreSQL to handle UTF characters that use more than one byte.
1.4.2 - January 13th 2011
* Ignore Sphinx errors when updating attributes (it's a low priority request).
* Don't use the CRC32 function within the generated SQL queries for class types.
* Direct facets to use a method to translate values using :value.
* Ensure that if one sphinx_internal_id attribute is a bigint, they all are.
* Ignore Sphinx errors when marking documents as deleted (it's a low priority request).
* Don't select columns from polymorphic joins if they're not available.
* Don't query Sphinx for a facet request if zero facets are requested.
* Ensure we're only using local_options when it's available (Paul Schyska).
* Don't presume the environment for Capistrano is production (Robert Glaser).
* Allow for custom database adapters.
* Fix for custom delta columns (Marcin Stecki).
1.4.1 - December 21st 2010
* No longer looking for attributes in :conditions option when searching.
* Copy and then modify sort arguments.
* Allow the generation of Sphinx configuration objects without necessarily writing to the configuration file.
* Allow Sphinx 1.10-beta versions that have been compiled with id64 support.
* Raise Sphinx errors when searching - which can be ignored using the :ignore_errors option (Matt Todd).
* Handle complex :include arguments, including hashes within arrays (Paco Guzmán).
* Handle hashes passed through to :include when searching.
* Can now require either 'thinking_sphinx' or 'thinking-sphinx'.
* Excerpts are less fussy about inputs.
* No longer hard-coding RSpec colour setting - that's up to the developer.
* Require Riddle 1.2.0 or better.
* Use searchd to stop Sphinx (via --stop or --stopwait arguments) (Matt Todd).
1.4.0 - November 14th 2010
* No longer supporting attributes in :conditions option.
* Case insensitive field sorting if :sortable is set to :insensitive.
* Using Bundler for development
* Can use make facet requests on existing searches and Sphinx scopes.
* Don't star field markers in search queries.
* Can use search_for_ids on Sphinx scopes.
* Ensure the CRC32 function for PostgreSQL handles empty strings and NULLs.
* Allow custom determination for database adapters.
* :include search option now limits itself to the relevant classes when searching across more than one class.
* Don't memoize primary_key_for_sphinx, which was causing trouble when objects are deleted or frozen.
* Allow for excerpts options when searching (using :excerpt_options) (Lee Capps).
* Wrap UTC in quotes when setting the timezone in PostgreSQL (Keith Pitt).
* Don't colourize logs unless ActiveRecord allows for it.
* Consistent contribution documentation (Sam Goldstein).
* Allow the setting of Riddle's timeout value via sphinx.yml (Sam Goldstein).
* 1.10-beta support.
* Can set the riddle client for the search request using :client.
* Fixing default sphinx scope support.
* Make a reasonable attempt to check that Sphinx has stopped (Matt Todd).
* Be more verbose if a model can't be loaded by Thinking Sphinx.