Changelog
View Source0.13.0
- Breaking change: changed how index namespaces are propagated between
parent/child processes during testing. Specifically:
Snap.Cluster.Namespace.get_process_namespace/1
now checks the namespace of ancestor processes. This makes it possible to use an isolated index in e.g. LiveView testing, where it's difficult to get a handle on the process before Snap queries are executedSnap.Cluster.Namespace.set_process_namespace/3
and associated get/clear functions which takes a specific PID have been removedSnap.Test.generate_namespace_for_pid/1
has been replaced withSnap.Test.generate_namespace/0
. The suggested snippet inSnap.Test
for use in theExUnit
setup block has been updated to reflect that. Updating this call is probably the only change most library users will need to perform.
0.12.2
- Added
Search.delete_by_query
function to perform delete operations against an index
0.12.1
- Support parsing the extra fields in suggest options that come back from a completion query
0.12.0
- Relax Finch dependency to 0.17, which is the lowest version that emit pool metrics
0.11.3
- Added new fields to telemetry measurements,
request_body_bytes
andresponse_body_bytes
, for logging the size of the request and response
0.11.2
- Added new
Snap.Indexes
utility functions to get and set mappings, settings and more (thanks @warmwaffles) - Added Elixir 1.17 to CI matrix
0.11.1
- Added
sort
field toSnap.Hit
struct - Added
routing
param toSnap.Bulk
actions - Added
get_mapping
andupdate_mapping
functions toSnap.Indexes
- Added
status
attribute to telemetry metadata, representing the HTTP status code of the response, if any
0.11.0
- Breaking change: changed the field names in
Snap.Bulk
actions to drop underscore prefix - Added support for pluggable JSON libraries. Continues to default to
Jason
, but you may see encoding/decoding performance improvements from switching toJsonrs
- Allowed
nil
for thetype
inSnap.Hit
as ElasticSearch >= 8 does not return this
0.10.0
- Enabled gzip compression in default HTTP adapter using
Accept-Heading
header, which speeds up large response objects
0.9.0
- Added
Snap.Document
for interacting with individual documents - Added
count/3
toSnap.Search
for performing counts with or without a query - Added support for index namespacing to isolate different Snap application, environments and even process from seeing each other's indexes - see
Snap.Cluster.Namespace
andSnap.Test
for details
0.8.1
- Upgrade
finch
, which allows use ofcastore
1.0 - Set minimum Elixir version to 1.12
0.8.0
- Add a high level interface for the Multi Search API
0.7.0
- Changed
inner_hits
to beSnap.Hits
struct to make it consistent with thehits
at the top level - Added support for
suggest
(thanks @maennchen) - Relaxed telemetry dependency to allow the use of 0.4 as well as 1.0 (thanks @dershodan)
0.6.0
- Added support for modular HTTP client adapters, allowing mock HTTP clients in a test environment (thanks @jotaviobiondo)
- Added extra fields to
Snap.Aggregation
(thanks @megalithic)
0.5.2
- Return
Snap.HTTPError
when ElasticSearch returns an error HTTP status without any accompanying JSON - Expose
inner_hits
field onSnap.Hit
struct
0.5.1
- Accept
conn_opts
config options to configure the underlying HTTP transport (thanks @danielxvu)
0.5.0
- Update
telemetry
dependency to 1.0
0.4.5
- Allow extra options on
Snap.Bulk.perform/4
which are passed into the underlying request - Added
matched_queries
andhighlight
fields on theSnap.Hit
struct.
0.4.1
- Added the
host
andport
to the Telemetry metadata.
0.4.0
- Drop the underscore from the response struct keys, as it's just annoying to work with.
0.3.0
- Added
Snap.Search
to wrap making searches and parsing the response into structs.
0.2.4
- Fixed behaviour of
max_errors
when it's set to0
.
0.2.3
- Added support for an optional
max_errors
parameter inSnap.Bulk.perform
, which aborts the operation if the number of errors accumulated exceedes this count.
0.2.2
- Pass extra opts, such as
pipeline: "foo"
inSnap.Bulk.perform
to the Bulk API endpoint.
0.2.1
- Added support in
Snap.Auth.Plain
for defining the username and password in the configured URL.
0.2.0
- Introduce
Snap.BulkError
to wrap a list of errors produced fromSnap.Bulk
.
0.1.1
- Documentation formatting fix.
0.1.0
- First release.