Edge: * Use BasicObject instead of BlankSlate when running on 1.9 (Steve Purcell). * 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). 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.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.