summaryrefslogtreecommitdiff
path: root/docs/groovy-api/client.asciidoc
blob: c0a6d68841560191663fe5b7fcb2907286250524 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
[[client]]
== Client

Obtaining an elasticsearch Groovy `GClient` (a `GClient` is a simple
wrapper on top of the Java `Client`) is simple. The most common way to
get a client is by starting an embedded `Node` which acts as a node
within the cluster.


[[node-client]]
=== Node Client

A Node based client is the simplest form to get a `GClient` to start
executing operations against elasticsearch.

[source,js]
--------------------------------------------------
import org.elasticsearch.groovy.client.GClient
import org.elasticsearch.groovy.node.GNode
import static org.elasticsearch.groovy.node.GNodeBuilder.nodeBuilder

// on startup

GNode node = nodeBuilder().node();
GClient client = node.client();

// on shutdown

node.close();
--------------------------------------------------

Since elasticsearch allows to configure it using JSON based settings,
the configuration itself can be done using a closure that represent the
JSON:

[source,js]
--------------------------------------------------
import org.elasticsearch.groovy.node.GNode
import org.elasticsearch.groovy.node.GNodeBuilder
import static org.elasticsearch.groovy.node.GNodeBuilder.*

// on startup

GNodeBuilder nodeBuilder = nodeBuilder();
nodeBuilder.settings {
    node {
        client = true
    }
    cluster {
        name = "test"
    }
}

GNode node = nodeBuilder.node()

// on shutdown

node.stop().close()
--------------------------------------------------