Feature compatibility detection for Elasticsearch and OpenSearch
Feature compatibility detection for Elasticsearch and OpenSearch
(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}(lifecycle-management-type conn)Inputs: [conn :- ESConn] Returns: (s/maybe (s/enum :ilm :ism))
Returns the lifecycle management type supported by the engine.
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(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
(supports-composable-templates? {:keys [engine version]})Inputs: [{:keys [engine version]} :- ESConn] Returns: s/Bool
Check if engine supports composable index templates.
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(supports-data-streams? {:keys [engine version]})Inputs: [{:keys [engine version]} :- ESConn] Returns: s/Bool
Check if engine supports data streams.
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(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:
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(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(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(supports-legacy-templates? _conn)Inputs: [_conn :- ESConn] Returns: s/Bool
Check if engine supports legacy index templates. Supported in all versions but deprecated in:
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})
;; => truecljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |