All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Compatibility with Rails 7.2 and beyond
- Updated the max elasticsearch dependency version to < 8.7
- Revert the additional
frozen_string_literal
updates in 1.0.0 due to some issues with some classes. We'll update these in a separate release to isolate the problem.
- Consistently use quotations
- Update API to remove deprecation warnings for Elasticsearch 7.X.X in preparation for upgrade to 8.
- Freeze string literals
- Remove
_type
from query/create/update/delete methods - Remove
use_new_timestamp_format
config - Remove
include_type_name_on_create
config
- Don't publish pre-release builds to RubyGems
- Use
refresh
instead offlush
where search is expected to be updated - Drop support for Ruby 2.5 and 2.6
- Add support for Ruby 2.7 and 3.0, build against Ruby 3.1
- Set
search_type
toquery_then_fetch
as we no longer support Elasticsearch version < 7.0 - Set
include_type_name
when fetching the mapping. Will be removed in the next version to support ES version 8. - Index names automatically use the new timestamp format when creating an index.
- expose 'matched_queries' property
- Compatibility with Rails 6
- Release on RubyGems using gem-publisher CircleCI Orb
- Release on Nexus using gem-publisher CircleCI Orb
- Packing gems
- bump the version for testing the Nexus repo
- remove superfluous 'to_ary' delegation that was causing issues downstream
- changes needed for use with Elasticsearch v7
- handle the v7 "total" as an object rather than a scalar
- use timestamp with no colons
- update elasticsearch gem version for consistency with target ES version
- expose refresh_index to force write (because in v7, flush no longer forces writes)
- allow for optional 'include_type_name_on_create' arg so that the :include_type_name can be passed
- use Arel.sql to avoid unsafe sql and eliminate deprecation warnings when used in Rails projects
- warn when configuring a index with subclasses if using ES version that does support them
- raise exception when creating or adding document to an index configured with subclasses if using an ES version that does not support them
- Give the option of retrying the deletion for certain exceptions during remap
- Fully clean up if error occurs during remap (assign all aliases back to original index)
- Adds support for preserving the order or normalized names of
highlight
throughhighlighted_attrs
- Adds support for passing arguments to Search definition through
search(query, search_args)
in index searching and msearch - adds
_explanation
to hold value of returned explanations in the base document
- support
action.destructive_requires_name
setting by being explict about which indices to delete
- compatibilty with ES v6
- change mappings for 'index' to boolean. "string" type was replaced with "text"
- use "successful" from API response ('created' was removed)
- stringify keys for :mappings so clients can use symbol keys
- update remap to removing fields from the mapping that are not explicitly defined.
- fix search enumerator, missing first result set
- fix remap method to use the scan api properly.
- fix scan api to work with more recent versions of elasticsearch ruby.
- loosen support for elasticsearch-ruby versions to support more versions of elasticsearch
- Make Elasticity::Strategies::AliasIndex the default
- Use mapping instead of mappings, we wanna be consistent to ES not to elasticsearch-ruby
- Better automatic index name and document type
- add more response info to raised exceptions from reindexing
- update search and multi search interfaces to allow passing of general search definition arguments found in https://github.com/elastic/elasticsearch-ruby/blob/bdf5e145e5acc21726dddcd34492debbbddde568/elasticsearch-api/lib/elasticsearch/api/actions/search.rb#L125-L162
- update suggestions to pull from the proper key
- add next_page and previous_page to be compatible with will_paginate interface
- update multi search
[]
method to raise an exception with key name to make it easier to debug failed queries within a multi search hash.
- Change documents to be able to define indexes with multiple doc types. A Document class can define subclasses which are of different doc_types and all live in the same index's mappings.
- updated search queries to pass either a list of document types or a single document type.
- Update documents to generate a default document_type from the class name so that Documents always have a document type. You'll still usually want to manually define the document type, but it's no longer necessary.
- Add aggregations to multi_search
- Add ability to reindex individual attributes of a document using the bulk_update API.
- Refactor of multisearch and search facade
- Searches no longer return a simple array, they now return the Search::Results object which proxies array and is enumerable.
- add Search::Results proxy object so pagination and meta data methods can be standardize across all responses
- Fix issue with hash strings and pagination
- Added support for surfacing document
_score
on query results.