Liking cljdoc? Tell your friends :D

ductile.features

Feature compatibility detection for Elasticsearch and OpenSearch

Feature compatibility detection for Elasticsearch and OpenSearch
raw docstring

get-feature-summaryclj

(get-feature-summary conn)

Inputs: [conn :- ESConn] Returns: #:s{Keyword s/Bool}

Get a summary of all feature support for the given connection.

Usage: (get-feature-summary {:engine :opensearch :version 2}) ;; => {:ilm false ;; :ism true ;; :data-streams true ;; :composable-templates true ;; :legacy-templates true ;; :doc-types false}

Inputs: [conn :- ESConn]
Returns: #:s{Keyword s/Bool}

Get a summary of all feature support for the given connection.

 Usage:
   (get-feature-summary {:engine :opensearch :version 2})
   ;; => {:ilm false
   ;;     :ism true
   ;;     :data-streams true
   ;;     :composable-templates true
   ;;     :legacy-templates true
   ;;     :doc-types false}
sourceraw docstring

lifecycle-management-typeclj

(lifecycle-management-type conn)

Inputs: [conn :- ESConn] Returns: (s/maybe (s/enum :ilm :ism))

Returns the lifecycle management type supported by the engine.

  • :ilm for Elasticsearch 7.0+
  • :ism for OpenSearch
  • nil for Elasticsearch < 7.0

Usage: (lifecycle-management-type {:engine :elasticsearch :version 7}) ;; => :ilm

(lifecycle-management-type {:engine :opensearch :version 2}) ;; => :ism

Inputs: [conn :- ESConn]
Returns: (s/maybe (s/enum :ilm :ism))

Returns the lifecycle management type supported by the engine.
 - :ilm for Elasticsearch 7.0+
 - :ism for OpenSearch
 - nil for Elasticsearch < 7.0

 Usage:
   (lifecycle-management-type {:engine :elasticsearch :version 7})
   ;; => :ilm

   (lifecycle-management-type {:engine :opensearch :version 2})
   ;; => :ism
sourceraw docstring

require-feature!clj

(require-feature! conn feature message)

Inputs: [conn :- ESConn feature :- s/Keyword message :- s/Str]

Throw an exception if the feature is not supported.

Usage: (require-feature! conn :data-streams "Data streams are required") ;; Throws ex-info if data streams not supported

Inputs: [conn :- ESConn feature :- s/Keyword message :- s/Str]

Throw an exception if the feature is not supported.

 Usage:
   (require-feature! conn :data-streams "Data streams are required")
   ;; Throws ex-info if data streams not supported
sourceraw docstring

supports-composable-templates?clj

(supports-composable-templates? {:keys [engine version]})

Inputs: [{:keys [engine version]} :- ESConn] Returns: s/Bool

Check if engine supports composable index templates.

  • Elasticsearch: 7.8+ (we conservatively assume all 7.x)
  • OpenSearch: 1.0+

Note: ESConn only stores major version, so we assume all ES 7.x supports composable templates.

Usage: (supports-composable-templates? {:engine :elasticsearch :version 7}) ;; => true

Inputs: [{:keys [engine version]} :- ESConn]
Returns: s/Bool

Check if engine supports composable index templates.
 - Elasticsearch: 7.8+ (we conservatively assume all 7.x)
 - OpenSearch: 1.0+

 Note: ESConn only stores major version, so we assume all ES 7.x supports composable templates.

 Usage:
   (supports-composable-templates? {:engine :elasticsearch :version 7})
   ;; => true
sourceraw docstring

supports-data-streams?clj

(supports-data-streams? {:keys [engine version]})

Inputs: [{:keys [engine version]} :- ESConn] Returns: s/Bool

Check if engine supports data streams.

  • Elasticsearch: 7.9+ (we conservatively assume all 7.x)
  • OpenSearch: 2.0+

Note: ESConn only stores major version, so we assume all ES 7.x supports data streams.

Usage: (supports-data-streams? {:engine :elasticsearch :version 7}) ;; => true

Inputs: [{:keys [engine version]} :- ESConn]
Returns: s/Bool

Check if engine supports data streams.
 - Elasticsearch: 7.9+ (we conservatively assume all 7.x)
 - OpenSearch: 2.0+

 Note: ESConn only stores major version, so we assume all ES 7.x supports data streams.

 Usage:
   (supports-data-streams? {:engine :elasticsearch :version 7})
   ;; => true
sourceraw docstring

supports-doc-types?clj

(supports-doc-types? {:keys [engine version]})

Inputs: [{:keys [engine version]} :- ESConn] Returns: s/Bool

Check if engine requires document types in URLs. Document types were removed in:

  • Elasticsearch: 7.0+
  • OpenSearch: All versions (based on ES 7.x)

Usage: (supports-doc-types? {:engine :elasticsearch :version 5}) ;; => true

(supports-doc-types? {:engine :elasticsearch :version 7}) ;; => false

Inputs: [{:keys [engine version]} :- ESConn]
Returns: s/Bool

Check if engine requires document types in URLs.
 Document types were removed in:
 - Elasticsearch: 7.0+
 - OpenSearch: All versions (based on ES 7.x)

 Usage:
   (supports-doc-types? {:engine :elasticsearch :version 5})
   ;; => true

   (supports-doc-types? {:engine :elasticsearch :version 7})
   ;; => false
sourceraw docstring

supports-ilm?clj

(supports-ilm? {:keys [engine version]})

Inputs: [{:keys [engine version]} :- ESConn] Returns: s/Bool

Check if engine supports ILM (Index Lifecycle Management). ILM is Elasticsearch 7.0+ only feature. OpenSearch uses ISM (Index State Management) instead.

Usage: (supports-ilm? {:engine :elasticsearch :version 7}) ;; => true

(supports-ilm? {:engine :opensearch :version 2}) ;; => false

Inputs: [{:keys [engine version]} :- ESConn]
Returns: s/Bool

Check if engine supports ILM (Index Lifecycle Management).
 ILM is Elasticsearch 7.0+ only feature.
 OpenSearch uses ISM (Index State Management) instead.

 Usage:
   (supports-ilm? {:engine :elasticsearch :version 7})
   ;; => true

   (supports-ilm? {:engine :opensearch :version 2})
   ;; => false
sourceraw docstring

supports-ism?clj

(supports-ism? {:keys [engine]})

Inputs: [{:keys [engine]} :- ESConn] Returns: s/Bool

Check if engine supports ISM (Index State Management). ISM is OpenSearch's equivalent to Elasticsearch's ILM. Available in all OpenSearch versions.

Usage: (supports-ism? {:engine :opensearch :version {:major 2}}) ;; => true

(supports-ism? {:engine :elasticsearch :version {:major 7}}) ;; => false

Inputs: [{:keys [engine]} :- ESConn]
Returns: s/Bool

Check if engine supports ISM (Index State Management).
 ISM is OpenSearch's equivalent to Elasticsearch's ILM.
 Available in all OpenSearch versions.

 Usage:
   (supports-ism? {:engine :opensearch :version {:major 2}})
   ;; => true

   (supports-ism? {:engine :elasticsearch :version {:major 7}})
   ;; => false
sourceraw docstring

supports-legacy-templates?clj

(supports-legacy-templates? _conn)

Inputs: [_conn :- ESConn] Returns: s/Bool

Check if engine supports legacy index templates. Supported in all versions but deprecated in:

  • Elasticsearch: 7.8+
  • OpenSearch: 1.0+

Usage: (supports-legacy-templates? {:engine :elasticsearch :version 7}) ;; => true

Inputs: [_conn :- ESConn]
Returns: s/Bool

Check if engine supports legacy index templates.
 Supported in all versions but deprecated in:
 - Elasticsearch: 7.8+
 - OpenSearch: 1.0+

 Usage:
   (supports-legacy-templates? {:engine :elasticsearch :version 7})
   ;; => true
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close