Skip to content
This repository has been archived by the owner. It is now read-only.
manage Elasticsearch indexes using staging pattern
Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/elasticsearch
spec
.gitignore
.ruby-gemset
.travis.yml
CONTRIBUTING.md
Gemfile
LICENSE.md
README.md
Rakefile
elasticsearch-indexstager.gemspec

README.md

elasticsearch-indexstager RubyGem

Build Status

Elasticsearch index management, for stage/promote pattern.

See also:

Examples

A busy ES installation needs to stay up and serving requests. If you need to build a new index, you can "stage" it alongside the live index, and then "promote" the stage to be live. This allows for zero downtime cutovers of new indices.

require 'elasticsearch'
require 'elasticsearch/index_stager'

client = Elasticsearch::Client.new log: true
stager = Elasticsearch::IndexStager.new(index_name: 'foo', es_client: client)

client.index(index: stager.tmp_index_name, type: 'article', id: 1, body: { title: 'Test' })
stager.alias_stage_to_tmp_index

results = client.search(index: stager.stage_index_name, body: { query: { match: { title: 'test' } } })
stager.promote
results = client.search(index: stager.index_name, body: { query: { match: { title: 'test' } } })

Public domain

This project is in the worldwide public domain. As stated in CONTRIBUTING:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.

You can’t perform that action at this time.