I am following the tutorial, completely new to any data bases, including Elasticsearch.
My code
client = Elasticsearch()
indexName = "art"
client.indices.create(index=indexName)
shows the following error (according to the book, it shouldn't)
ValueError Traceback (most recent call last) /var/folders/s5/dhdrwvbj5bs4m9nld9bp43400000gn/T/ipykernel_49947/868473428.py in ----> 1 client = Elasticsearch() 2 indexName = "art" 3 client.indices.create(index=indexName)
~/opt/anaconda3/lib/python3.9/site-packages/elasticsearch/_sync/client/init.py in init(self, hosts, cloud_id, api_key, basic_auth, bearer_auth, opaque_id, headers, connections_per_node, http_compress, verify_certs, ca_certs, client_cert, client_key, ssl_assert_hostname, ssl_assert_fingerprint, ssl_version, ssl_context, ssl_show_warn, transport_class, request_timeout, node_class, node_pool_class, randomize_nodes_in_pool, node_selector_class, dead_node_backoff_factor, max_dead_node_backoff, serializer, serializers, default_mimetype, max_retries, retry_on_status, retry_on_timeout, sniff_on_start, sniff_before_requests, sniff_on_node_failure, sniff_timeout, min_delay_between_sniffing, sniffed_node_callback, meta_header, timeout, randomize_hosts, host_info_callback, sniffer_timeout, sniff_on_connection_fail, http_auth, maxsize, _transport) 189 ) -> None: 190 if hosts is None and cloud_id is None and _transport is None: --> 191 raise ValueError("Either 'hosts' or 'cloud_id' must be specified") 192 193 if timeout is not DEFAULT:
ValueError: Either 'hosts' or 'cloud_id' must be specified
When I start Elasticsearch through Terminal, I can open localhost:9200. I also have changed #network.host: 0.0.0.0 in elasticsearch.yml.
Could you please help me? And could you please explain, what exactly this code does?
Thank you!
CodePudding user response:
take a look at the docs, basically you need to use the below if you want to connect to Elasticsearch locally;
client = Elasticsearch("http://localhost:9200")
indexName = "art"
client.indices.create(index=indexName)
client
tells where this instance needs to connect to to talk to ElasticsearchindexName
is the name of the index you want to use- the last line is the action, what you want to do, ie create the index you defined