Wrapper for Elasticsearch cloud client with query builder and improvements
Project description
Rivia ES Cloud
Wrapper para o cliente Elasticsearch Cloud com construtor de consultas e melhorias.
Requisitos
- Python >= 3.8
- Elasticsearch >= 9.0.1
Instalação
Para instalar as dependências, execute:
pip install rivia-es-cloud
Configuração
Defina as seguintes variáveis de ambiente para configurar a conexão com o Elasticsearch Cloud:
ELASTIC_CLOUD_IDELASTIC_USERELASTIC_PASSWORD
Para clusters do Elastic Cloud em formato serverless, defina as seguintes variáveis de ambiente
ELASTIC_CLOUD_MODE= serverlessELASTIC_HOSTELASTIC_API_KEY
Uso
Funções Disponíveis
get_client()
Retorna a instância do cliente do Elasticsearch.
must_match_all_fields(fields, parameters)
Monta a cláusula bool "must" para o Elasticsearch usando os campos e os parâmetros fornecidos.
fields: Lista de campos a serem mapeados. Exemplo:[{'name': 'profile_text', 'value': 'profile_text', 'type': 'match'},{'name': 'hair_color', 'value': 'hair_color.keyword', 'type': 'term'},{'name': 'age_range', 'value': 'age', 'type': 'range'}]parameters: Dicionário de parâmetros de busca. Exemplo:{'profile_text': 'Travel','hair_color': 'Brown','age_range': {'gte': 28, 'lte': 35}}
query(index, match, sort=None, limit=100, offset=0, pretty=True)
Realiza a consulta no Elasticsearch.
index: Índice do Elasticsearch.match: Dicionário de parâmetros de busca. Conforme o retorno da função must_match_all_fields.sort: Parâmetros de ordenação (opcional).limit: Limite de documentos a serem retornados (opcional).offset: Offset para a consulta (opcional).pretty: Formatar o resultado (opcional).
query_must(index, fields, parameters, sort=None, limit=100, offset=0, pretty=True)
Realiza a consulta no Elasticsearch.
index: Índice do Elasticsearch.fields: Lista de campos a serem mapeados. Exemplo:[{'name': 'profile_text', 'value': 'profile_text', 'type': 'match'},{'name': 'hair_color', 'value': 'hair_color.keyword', 'type': 'term'},{'name': 'age_range', 'value': 'age', 'type': 'range'}]parameters: Dicionário de parâmetros de busca. Exemplo:{'profile_text': 'Travel','hair_color': 'Brown','age_range': {'gte': 28, 'lte': 35}}sort: Parâmetros de ordenação (opcional).limit: Limite de documentos a serem retornados (opcional).offset: Offset para a consulta (opcional).pretty: Formatar o resultado (opcional).
query_all(index, limit, sort=None, offset=0, pretty=True)
Retorna todos os documentos de um índice do Elasticsearch.
index: Índice do Elasticsearch.limit: Limite de documentos a serem retornados.sort: Parâmetros de ordenação (opcional).offset: Offset para a consulta (opcional).pretty: Formatar o resultado (opcional).
upsert(index, id, data)
Insere ou atualiza um documento no Elasticsearch.
index: Índice do Elasticsearch.id: Identificador do documento.data: Dados do documento.
get(index, id)
Retorna um documento do Elasticsearch.
index: Índice do Elasticsearch.id: Identificador do documento.
Exemplo de Uso
import os
import rivia-es-cloud as es
# Defina as variáveis de ambiente
os.environ['ELASTIC_CLOUD_ID'] = 'your_cloud_id'
os.environ['ELASTIC_USER'] = 'your_user'
os.environ['ELASTIC_PASSWORD'] = 'your_password'
# Realiza uma consulta
fields = [{'name': 'name', 'value': 'customer_name.keyword', 'type': 'match'}]
parameters = {'name': 'Vitor'}
match = es.must_match_all_fields(fields, parameters)
result = es.query('your_index', match)
print(result)
# Realiza uma consulta
fields = [{'name': 'name', 'value': 'customer_name.keyword', 'type': 'match'}]
parameters = {'name': 'Vitor'}
result = es.query_must('your_index', fields, parameters)
print(result)
# Retorna todos os primeiros 10 documentos
result = es.query_all('your_index', limit=10)
print(result)
# Insere um documento
data = {'name': 'Vitor', 'status': 'active'}
document = es.insert('your_index', data)
print(document)
# Insere ou atualiza um documento
data = {'name': 'Vitor', 'status': 'active'}
document = es.upsert('your_index', 'document_id', data)
print(document)
# Retorna um documento
document = es.get('your_index', 'document_id')
print(document)
# Remove um documento
es.delete('your_index', 'document_id')
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rivia_es_cloud-1.2.6.tar.gz.
File metadata
- Download URL: rivia_es_cloud-1.2.6.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d005c6e8bb88b434e5e41f035c5e1ab95dfe37e6f29c48175a90bd4665a7097
|
|
| MD5 |
184263db2c82eccee7413eb7e392ed8e
|
|
| BLAKE2b-256 |
fd7b6402960f75b0416a7b28405935db67785807d909c297769286c5174913df
|
File details
Details for the file rivia_es_cloud-1.2.6-py3-none-any.whl.
File metadata
- Download URL: rivia_es_cloud-1.2.6-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a3716cb82151fc2ff7f658f54514551ffe109a07fcf68719e109f65dc1ca966
|
|
| MD5 |
1671579eb14d06abf5c48d3415f71d99
|
|
| BLAKE2b-256 |
84b8fe97b43f894ff1e2f5e965f80d5e9dc89f89787b9a7bb629cd130ffbfc7c
|