/couchbase-elasticsearch-connector

A plugin for ElasticSearch that enables loading data using Couchbase XDCR

Primary LanguageJavaApache License 2.0Apache-2.0

Couchbase Elasticsearch Connector

This repository forked from official couchbase-elasticsearch-connector and implemented custom routing. If your case requires custom routing or you want parent-child ES index structure or you are using join ES type, you are on right track.

The Couchbase Elasticsearch Connector replicates your documents from Couchbase Server to Elasticsearch in near real time. The connector uses the high-performance Database Change Protocol (DCP) to receive notifications when documents change in Couchbase.

Note
If you’re looking for the Elasticsearch Plug-in flavor of the connector, that’s in a different branch.

This product is neither affiliated with nor endorsed by Elastic. Elasticsearch is a trademark of Elasticsearch BV, registered in the U.S. and in other countries.

Building the connector from source

The connector distribution may be built from source with the command:

./gradlew build

The distribution archive will be generated under build/distributions. During development, it might be more convenient to run:

./gradlew installDist

which creates build/install/couchbase-elasticsearch-connector as a $CBES_HOME directory.

Running the integration tests

A local Docker installation is required for these tests. To quickly test using only the latest Couchbase and Elasticsearch:

./gradlew integrationTest

To test against all supported versions of Couchbase and Elasticsearch:

./gradlew exhaustiveTest

IntelliJ IDEA setup

Because the project uses annotation processors, some fiddly setup is required when importing the project into IntelliJ IDEA.