# ElasticSearch Index *author: Jael*
## Description The index operator index the given documents in ElasticSearch to get ready for retrieval. It accepts a single document in dictionary or a list of documents (dictionaries) as input. For each document, the index automatically generates a unique id. To use this operator, you need to [set up ElasticSearch](https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html) in advance.
## Code Example Insert an example document into ElasticSearch with address of localhost:9200 and index of 'test_index'. ```python from datetime import datetime from towhee import pipe, ops, DataCollection example_doc = { 'title': 'Test Title', 'author': 'Towhee', 'content': 'This is an example.', 'timestamp': datetime.now() } es_insert = ( pipe.input('index_name', 'doc') .map(('index_name', 'doc'), 'res', ops.elasticsearch.osschat_index( host='localhost', port=9200 )) .output('doc', 'res') ) res = es_insert('test_index', example_doc) # OR: es_insert('test_index', [example_doc]) DataCollection(res).show() # Optional: display output data ```
## Factory Constructor Create the operator via the following factory method: ***elasticsearch.search(host='localhost', port=9200, user=None, password=None, ca_certs=None)*** **Parameters:** ***host***: *str* The host to connect ElasticSearch client. ***port***: *int* The port to connect ElasticSearch client. ***user***: *str* The username to connect ElasticSearch client if needed, defaults to None. ***password***: *str* The user password to connect ElasticSearch client if needed, defaults to None. ***ca_certs***: *str* The path to CA certificates to connect ElasticSearch client if needed, defaults to None.
**Returns:** Index response wrapped by `elastic_transport.ObjectApiResponse`.