|
|
|
# ElasticSearch Index
|
|
|
|
|
|
|
|
*author: Jael*
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
## 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.index_client(
|
|
|
|
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
|
|
|
|
```
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
**Returns:**
|
|
|
|
|
|
|
|
Index response wrapped by `elastic_transport.ObjectApiResponse`.
|