ElasticGraph::OpenSearch
Wraps the official OpenSearch client for use by ElasticGraph.
Dependency Diagram
graph LR;
classDef targetGemStyle fill:#FADBD8,stroke:#EC7063,color:#000,stroke-width:2px;
classDef otherEgGemStyle fill:#A9DFBF,stroke:#2ECC71,color:#000;
classDef externalGemStyle fill:#E0EFFF,stroke:#70A1D7,color:#2980B9;
elasticgraph-opensearch["elasticgraph-opensearch"];
class elasticgraph-opensearch targetGemStyle;
elasticgraph-support["elasticgraph-support"];
elasticgraph-opensearch --> elasticgraph-support;
class elasticgraph-support otherEgGemStyle;
faraday["faraday"];
elasticgraph-opensearch --> faraday;
class faraday externalGemStyle;
faraday-retry["faraday-retry"];
elasticgraph-opensearch --> faraday-retry;
class faraday-retry externalGemStyle;
opensearch-ruby["opensearch-ruby"];
elasticgraph-opensearch --> opensearch-ruby;
class opensearch-ruby externalGemStyle;
elasticgraph-lambda_support["elasticgraph-lambda_support"];
elasticgraph-lambda_support --> elasticgraph-opensearch;
class elasticgraph-lambda_support otherEgGemStyle;
click faraday href "https://rubygems.org/gems/faraday" "Open on RubyGems.org" _blank;
click faraday-retry href "https://rubygems.org/gems/faraday-retry" "Open on RubyGems.org" _blank;
click opensearch-ruby href "https://rubygems.org/gems/opensearch-ruby" "Open on RubyGems.org" _blank;
Usage
ElasticGraph projects are configured to use this gem or elasticgraph-elasticsearch
, based on which datastore is being used.
To use an ElasticGraph project with OpenSearch, bootstrap an ElasticGraph project with --datastore opensearch
:
gem exec elasticgraph new path/to/project --datastore opensearch
Migrate from Elasticsearch to OpenSearch
If you need to convert an existing project to use OpenSearch instead of Elasticsearch, here's how to do that.
First, replace elasticgraph-elasticsearch
with elasticgraph-opensearch
in the Gemfile
:
diff --git a/Gemfile b/Gemfile
index 4a5ef1e..cc0e1fb 100644
--- a/Gemfile
+++ b/Gemfile
@@ -7,7 +7,7 @@ gem "elasticgraph-local", *elasticgraph_details
gem "elasticgraph-query_registry", *elasticgraph_details
# Can be elasticgraph-elasticsearch or elasticgraph-opensearch based on the datastore you want to use.
-gem "elasticgraph-elasticsearch", *elasticgraph_details
+gem "elasticgraph-opensearch", *elasticgraph_details
gem "httpx", "~> 1.3"
Then, update the settings YAML file to configure opensearch
as the cluster backend:
diff --git a/config/settings/local.yaml b/config/settings/local.yaml
index 963f4f9..16eb063 100644
--- a/config/settings/local.yaml
+++ b/config/settings/local.yaml
@@ -4,7 +4,7 @@ datastore:
require: httpx/adapters/faraday
clusters:
main:
- backend: elasticsearch
+ backend: opensearch
url: http://localhost:9200
settings: {}
index_definitions: