2.0.0
is a major release, which focuses on the new
features in ElasticSearch 1.1/1.2 and introduces major API improvements,
including a breaking change.
Changes between Elastisch 1.4.0 and 2.0.0
Connection/Client As Explicit Argument
Starting with Elastisch 2.0.0-rc1, connection (client) is no longer a shared
dynamic var but rather is an explicit argument that relevant API functions
accept.
As a new design rule, all new API elements (e.g. aggregations) will accept a single map
of options.
GH issue: #59.
ElasticSearch Client Update
ElasticSearch client has been upgraded to 1.2.x.
ElasticSearch 1.0/1.1/1.2 Compatibility
One of the main goals of Elastisch 2.0 is ElasticSearch 1.2 compatibility. This includes minor
API changes (in line with ElasticSearch 1.0 API and terminology changes)
and moderate internal modifications.
Snapshotting Support in Native Client
Native client now supports snapshotting (updated for ElasticSearch 1.2)
with the same Clojure API as the REST client (all the usual API conventions
apply).
Response Helpers Compatible With ES 1.1
clojurewerkz.elastisch.rest.response/created? and clojurewerkz.elastisch.native.response/created?
were adapted for recent ES releases.
Contributed by Oliver McCormack (The Climate Corporation).
Percolation of Existing Documents (REST API)
REST API client now supports percolation of existing documents:
Elastisch now depends on org.clojure/clojure version 1.6.0. It is
still compatible with Clojure 1.4 and if your project.clj depends on
a different version, it will be used, but 1.6 is the default now.
Type Exists Operation
types-exists support
in both rest and native clients:
clojurewerkz.elastisch.aggregation is a new namespace that contains
helper functions that produce various types of aggregations. Just like
clojurewerkz.elastisch.query, all of the functions return maps and
are optional.
clojurewerkz.elastisch.rest.response/aggregations-from is a new function
that returns aggregations from a search response:
Aggregations support is primarily focused on REST client at the moment.
clj-http Update
clj-http dependency has been upgraded to version 0.9.1.
Support for cluster nodes stats and info REST APIs
clojureworkz.elastisch.rest.admin/nodes-info and clojureworkz.elastisch.rest.admin/nodes-stats
are new administrative functions that provide access to ElasticSearch
cluster stats and node info.
(require'[clojurewerkz.elastisch.rest.document:asdoc])(doc/analyze"foo bar baz")(doc/analyze"foo bar baz":index"some-index-name")(doc/analyze"foo bar baz":analyzer"whitespace")(doc/analyze"foo bar baz":tokenizer"keyword":filters"lowercase")(doc/analyze"foo bar baz":index"some-index-name":field"some-field-name")
Contributed by Joachim De Beule
Query String Escaping
clojurewerkz.elastisch.query/query-string accepts a new option, :escape-with,
which is a function that performs escaping of special characters in query string
queries.
By default clojurewerkz.elastisch.escape/escape-query-string-characters is used.
Monger is an idiomatic Clojure MongoDB driver for a more civilized age.
It has batteries included, offers powerful expressive query DSL, strives to support every MongoDB 2.0+ feature and has sane defaults.
It also has solid documentation.
2.0.0 is a major backwards-incompatible release that implements in
Monger the major breaking API changes
announced earlier this year.
Changes between 1.8.0 and 2.0.0
2.0.0 is a major release that has breaking public API changes.
Explicit Connection/DB/GridFS Argument
In Monger 2.0, all key public API functions require an explicit
DB/connection/GridFS object to be provided instead of relying on
a shared dynamic var. This makes Monger much easier to use with
systems such as Component and Jig, as well as concurrent
applications that need to work with multiple connections, database,
or GridFS filesystems.
2.0.0-rc2
is a release candidate of Elastisch 2.0, which focuses on the new
features in ElasticSearch 1.1 and introduces major API improvements,
including a breaking change.
Changes between Elastisch 2.0.0-rc1 and 2.0.0-rc2
ElasticSearch Client Update
ElasticSearch client has been upgraded to 1.2.x.
Snapshotting Support in Native Client
Native client now supports snapshotting (updated for ElasticSearch 1.2)
with the same Clojure API as the REST client (all the usual API conventions
apply).
Cassaforte is a Clojure client for
Apache Cassandra. It is built around CQL 3 and focuses on ease
of use. You will likely find that using Cassandra from Clojure has
never been so easy.
All Welle public API functions that issue requests to Riak now require
a client (HTTP or PBC) to be passed as an explicit argument:
123456789101112131415
(ns welle.docs.examples(:require[clojurewerkz.welle.core:aswc][clojurewerkz.welle.buckets:aswb][clojurewerkz.welle.kv:askv])(:importcom.basho.riak.client.http.util.Constants))(let [conn(wc/connect)bucket"accounts"key "novemberain"val {:name"Michael":age27:usernamekey}](wb/createconnbucket);; stores data serialized as JSON(kv/storeconnbucketkey val {:content-typeConstants/CTYPE_JSON_UTF8});; fetches it back(kv/fetchconnbucketkey))
Options as Maps
Functions that take optional arguments now require them to be proper maps
(and not pseudo-keywords):
12345
;; in 2.0(kv/storebucketkey val :content-typeConstants/CTYPE_JSON_UTF8);; in 3.0(kv/storeconnbucketkey val {:content-typeConstants/CTYPE_JSON_UTF8})
HTTPComponents 4.3
Welle now excludes HTTPComponents dependency for Riak client and instead
uses version 4.3 which clj-http depends on.
3.0.0 is a major release. It has a major breaking API change
compared to 2.0.x: every function now takes a connection as
an explicit argument instead of relying on a dynamic var.
Changes between Neocons 2.0.0 and 3.0.0
Breaking Change: Explicit Connection Argument
Neocons no longer uses a dynamic var to hold the state of the connection.
This leads to significant changes to the API as the connection has to be
passed to functions. The position of the connection argument is always the
first argument for the sake of consistency:
1234567891011
(require'[clojurewerkz.neocons.rest:asnr])(require'[clojurewerkz.neocons.rest.nodes:asnn]);; with Neocons 2.0(nr/connect!"http://localhost:7476/db")(nn/create{:url"http://clojurewerkz.org/"});; with Neocons 3.0(let [conn(nr/connect"http://localhost:7476/db")](nn/createconn{:url"http://clojurewerkz.org/"}))
Additionally connect! function in clojurewerkz.neocons.rest no longer
exists. This has been replaced by function connect in clojurewerkz.neocons.rest.
The connect function has the same arguments as the connect! function
only it returns a Connection record.
The Connection record has a key called :options which can be used to pass
additional parameters to be used by clj-http
like debug.
Contributed by Rohit Aggarwal.
Clojure 1.6
Neocons now depends on org.clojure/clojure version 1.6.0. It is
still compatible with Clojure 1.4 and if your project.clj depends on
a different version, it will be used, but 1.6 is the default now.
We’d like to thank Rohit Aggarwal for
single-handedly doing all the work in Neocons 3.0. Contributors
like Rohit is why open source software works as well as it does.
langohr.core/connect now supports :hosts as well as :host.
The hosts provided will be iterated over, the first reachable host
will be used.
Example:
1234567
(require'[langohr.core:asrmq])(rmq/connect{:hosts#{"192.168.1.2""192.168.1.3"}});; uses port 5688 for both hosts(rmq/connect{:hosts#{"192.168.1.2""192.168.1.3"}:port5688});; uses multiple host/port pairs(rmq/connect{:hosts#{["192.168.1.2"5688]["192.168.1.3"5689]}})
All Welle public API functions that issue requests to Riak now require
a client (HTTP or PBC) to be passed as an explicit argument:
123456789101112131415
(ns welle.docs.examples(:require[clojurewerkz.welle.core:aswc][clojurewerkz.welle.buckets:aswb][clojurewerkz.welle.kv:askv])(:importcom.basho.riak.client.http.util.Constants))(let [conn(wc/connect)bucket"accounts"key "novemberain"val {:name"Michael":age27:usernamekey}](wb/createconnbucket);; stores data serialized as JSON(kv/storeconnbucketkey val {:content-typeConstants/CTYPE_JSON_UTF8});; fetches it back(kv/fetchconnbucketkey))
Options as Maps
Functions that take optional arguments now require them to be proper maps
(and not pseudo-keywords):
12345
;; in 2.0(kv/storebucketkey val :content-typeConstants/CTYPE_JSON_UTF8);; in 3.0(kv/storeconnbucketkey val {:content-typeConstants/CTYPE_JSON_UTF8})
HTTPComponents 4.3
Welle now excludes HTTPComponents dependency for Riak client and instead
uses version 4.3 which clj-http depends on.
Cassaforte is a new Clojure client for
Apache Cassandra. It is built around CQL 3 and focuses on ease
of use. You will likely find that using Cassandra from Clojure has
never been so easy.
1.3.0 is a minor release that introduces a few minor features and
improves compatibility with Cassandra 2.0.
Changes between Cassaforte 1.2.x and 1.3.0
Clojure 1.6 By Default
The project now depends on org.clojure/clojure version 1.6.0. It is
still compatible with Clojure 1.4 and if your project.clj depends on
a different version, it will be used, but 1.6 is the default now.
We encourage all users to upgrade to 1.6, it is a drop-in replacement
for the majority of projects out there.
Cassandra Java Driver Update
Cassandra Java driver has been updated to 2.0.x.
UUID Generation Helpers
clojurewerkz.cassaforte.uuids is a new namespace that provides UUID
generation helpers: