-
-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathclient_initialization.rb
68 lines (64 loc) · 2.6 KB
/
client_initialization.rb
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
60
61
62
63
64
65
66
67
68
# frozen_string_literal: true
require_relative '../lib/typesense'
require 'awesome_print'
require 'logger'
AwesomePrint.defaults = {
indent: -2
}
##
## Setup
#
### Option 1: Start a single-node cluster
# $ docker run -i -p 8108:8108 -v/tmp/typesense-server-data-1b/:/data -v`pwd`/typesense-server-peers:/typesense-server-peers typesense/typesense:0.19.0 --data-dir /data --api-key=xyz --listen-port 8108 --enable-cors
#
### Option 2: Start a 3-node cluster
#
# Create file in present working directory called typesense-server-peers (update IP Addresses appropriately to your local network):
# $ echo '172.17.0.2:8107:8108,172.17.0.3:7107:7108,172.17.0.4:9107:9108' > `pwd`/typesense-server-peers
#
# Start node 1:
# $ docker run -i -p 8108:8108 -p 8107:8107 -v/tmp/typesense-server-data-1b/:/data -v`pwd`/typesense-server-peers:/typesense-server-peers typesense/typesense:0.19.0 --data-dir /data --api-key=xyz --listen-port 8108 --peering-port 8107 --enable-cors --nodes=/typesense-server-peers
#
# Start node 2:
# $ docker run -i -p 7108:7108 -p 7107:7107 -v/tmp/.typesense-server-data-2b/:/data -v`pwd`/typesense-server-peers:/typesense-server-peers typesense/typesense:0.19.0 --data-dir /data --api-key=xyz --listen-port 7108 --peering-port 7107 --enable-cors --nodes=/typesense-server-peers
#
# Start node 3:
# $ docker run -i -p 9108:9108 -p 9107:9107 -v/tmp/.typesense-server-data-3b/:/data -v`pwd`/typesense-server-peers:/typesense-server-peers typesense/typesense:0.19.0 --data-dir /data --api-key=xyz --listen-port 9108 --peering-port 9107 --enable-cors --nodes=/typesense-server-peers
#
# Note: Be sure to add `--license-key=<>` at the end when starting a Typesense Premium server
##
# Create a client
@typesense = Typesense::Client.new(
nodes: [
{
host: 'localhost',
port: 8108,
protocol: 'http'
}
# Uncomment if starting a 3-node cluster, using Option 2 under Setup instructions above
# {
# host: 'localhost',
# port: 7108,
# protocol: 'http'
# },
# {
# host: 'localhost',
# port: 9108,
# protocol: 'http'
# }
],
# If this optional key is specified, requests are always sent to this node first if it is healthy
# before falling back on the nodes mentioned in the `nodes` key. This is useful when running a distributed set of search clusters.
# 'nearest_node': {
# 'host': 'localhost',
# 'port': '8108',
# 'protocol': 'http'
# },
api_key: 'xyz',
num_retries: 10,
healthcheck_interval_seconds: 1,
retry_interval_seconds: 0.01,
connection_timeout_seconds: 10,
logger: Logger.new($stdout),
log_level: Logger::INFO
)