summaryrefslogtreecommitdiff
path: root/docs/river
diff options
context:
space:
mode:
authorHilko Bengen <bengen@debian.org>2014-06-07 12:02:12 +0200
committerHilko Bengen <bengen@debian.org>2014-06-07 12:02:12 +0200
commitd5ed89b946297270ec28abf44bef2371a06f1f4f (patch)
treece2d945e4dde69af90bd9905a70d8d27f4936776 /docs/river
downloadelasticsearch-d5ed89b946297270ec28abf44bef2371a06f1f4f.tar.gz
Imported Upstream version 1.0.3upstream/1.0.3
Diffstat (limited to 'docs/river')
-rw-r--r--docs/river/couchdb.asciidoc11
-rw-r--r--docs/river/index.asciidoc77
-rw-r--r--docs/river/rabbitmq.asciidoc9
-rw-r--r--docs/river/twitter.asciidoc10
-rw-r--r--docs/river/wikipedia.asciidoc8
5 files changed, 115 insertions, 0 deletions
diff --git a/docs/river/couchdb.asciidoc b/docs/river/couchdb.asciidoc
new file mode 100644
index 0000000..5a2555e
--- /dev/null
+++ b/docs/river/couchdb.asciidoc
@@ -0,0 +1,11 @@
+[[river-couchdb]]
+== CouchDB River
+
+The CouchDB River allows to automatically index couchdb and make it
+searchable using the excellent
+http://guide.couchdb.org/draft/notifications.html[_changes] stream
+couchdb provides.
+
+See
+https://github.com/elasticsearch/elasticsearch-river-couchdb/blob/master/README.md[README
+file] for details.
diff --git a/docs/river/index.asciidoc b/docs/river/index.asciidoc
new file mode 100644
index 0000000..9d587f9
--- /dev/null
+++ b/docs/river/index.asciidoc
@@ -0,0 +1,77 @@
+[[river]]
+= Rivers
+
+== Intro
+
+A river is a pluggable service running within elasticsearch cluster
+pulling data (or being pushed with data) that is then indexed into the
+cluster.
+
+A river is composed of a unique name and a type. The type is the type of
+the river (out of the box, there is the `dummy` river that simply logs
+that it is running). The name uniquely identifies the river within the
+cluster. For example, one can run a river called `my_river` with type
+`dummy`, and another river called `my_other_river` with type `dummy`.
+
+
+[[how-it-works]]
+== How it Works
+
+A river instance (and its name) is a type within the `_river` index. All
+different rivers implementations accept a document called `_meta` that
+at the very least has the type of the river (twitter / couchdb / ...)
+associated with it. Creating a river is a simple curl request to index
+that `_meta` document (there is actually a `dummy` river used for
+testing):
+
+[source,js]
+--------------------------------------------------
+curl -XPUT 'localhost:9200/_river/my_river/_meta' -d '{
+ "type" : "dummy"
+}'
+--------------------------------------------------
+
+A river can also have more data associated with it in the form of more
+documents indexed under the given index type (the river name). For
+example, storing the last indexed state can be stored in a document that
+holds it.
+
+Deleting a river is a call to delete the type (and all documents
+associated with it):
+
+[source,js]
+--------------------------------------------------
+curl -XDELETE 'localhost:9200/_river/my_river/'
+--------------------------------------------------
+
+
+[[allocation]]
+== Cluster Allocation
+
+Rivers are singletons within the cluster. They get allocated
+automatically to one of the nodes and run. If that node fails, a river
+will be automatically allocated to another node.
+
+River allocation on nodes can be controlled on each node. The
+`node.river` can be set to `_none_` disabling any river allocation to
+it. The `node.river` can also include a comma separated list of either
+river names or types controlling the rivers allowed to run on it. For
+example: `my_river1,my_river2`, or `dummy,twitter`.
+
+
+[[status]]
+== Status
+
+Each river (regardless of the implementation) exposes a high level
+`_status` doc which includes the node the river is running on. Getting
+the status is a simple curl GET request to
+`/_river/{river name}/_status`.
+
+include::couchdb.asciidoc[]
+
+include::rabbitmq.asciidoc[]
+
+include::twitter.asciidoc[]
+
+include::wikipedia.asciidoc[]
+
diff --git a/docs/river/rabbitmq.asciidoc b/docs/river/rabbitmq.asciidoc
new file mode 100644
index 0000000..cdad9f8
--- /dev/null
+++ b/docs/river/rabbitmq.asciidoc
@@ -0,0 +1,9 @@
+[[river-rabbitmq]]
+== RabbitMQ River
+
+RabbitMQ River allows to automatically index a
+http://www.rabbitmq.com/[RabbitMQ] queue.
+
+See
+https://github.com/elasticsearch/elasticsearch-river-rabbitmq/blob/master/README.md[README
+file] for details.
diff --git a/docs/river/twitter.asciidoc b/docs/river/twitter.asciidoc
new file mode 100644
index 0000000..355c187
--- /dev/null
+++ b/docs/river/twitter.asciidoc
@@ -0,0 +1,10 @@
+[[river-twitter]]
+== Twitter River
+
+The twitter river indexes the public
+http://dev.twitter.com/pages/streaming_api[twitter stream], aka the
+hose, and makes it searchable.
+
+See
+https://github.com/elasticsearch/elasticsearch-river-twitter/blob/master/README.md[README
+file] for details.
diff --git a/docs/river/wikipedia.asciidoc b/docs/river/wikipedia.asciidoc
new file mode 100644
index 0000000..c65107a
--- /dev/null
+++ b/docs/river/wikipedia.asciidoc
@@ -0,0 +1,8 @@
+[[river-wikipedia]]
+== Wikipedia River
+
+A simple river to index http://en.wikipedia.org[Wikipedia].
+
+See
+https://github.com/elasticsearch/elasticsearch-river-wikipedia/blob/master/README.md[README
+file] for details.