Skip to content

ryanramage/couch2elastic4sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

couch2elastic4sync

Since Elasticsearch rivers are deprecated this is a simple node process that will follow a couchdb changes feed and updates elasticsearch.

You can also include an optional mapper.

npm install couch2elastic4sync -g

Usage

Configuration file

rc is used to set to variables. For example, create a .couch2elastic4sync file with the following

database=http://localhost:5984/idx-edm-v5
elasticsearch=http://elastic-1.com:9200/idx-edm-v5/listing

or pass the config file path explicity

couch2elastic4sync --config=path/to/configfile

Alternatively, the config file can be in JSON

{
  "database": "http://localhost:5984/idx-edm-v5",
  "elasticsearch": "http://elastic-1.com:9200/idx-edm-v5/listing"
}

You can also destructure some of the urls to help configuration management

couch=http://localhost:5984
database=idx-edm-v5
elasticsearch=http://elastic-1.com:9200
indexName=idx-edm-v5
indexType=listing

Load documents

To load all the documents into elasticsearch, run

couch2elastic4sync load

Keep documents in sync

To keep a sync process going, run

couch2elastic4sync

Load just one doc

couch2elastic4sync id 19404098

where it is the id from couch

Cleanup deleted docs

Sometimes there are docs in elasticsearch, that dont match any docs in couch. This task cleans those up (removes them) from elasticsearch.

couch2elastic4sync cleanup

Format and filter documents

A mapper function can be passed from the config to format documents before being put to ElasticSearch:

database=http://localhost:5984/idx-edm-v5
elasticsearch=http://elastic-1.com:9200/idx-edm-v5/listing
mapper=path/to/my-mapper.js

Where my-mapper.js could be something like

module.exports = function (doc) {
  // apply formatting here
  return doc
}

If the function returns empty, the document is filtered-out

License

MIT

About

Sync couchdb data to elasticsearch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published