Skip to main content

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_ID
  • ELASTIC_USER
  • ELASTIC_PASSWORD

Para clusters do Elastic Cloud em formato serverless, defina as seguintes variáveis de ambiente

  • ELASTIC_CLOUD_MODE = serverless
  • ELASTIC_HOST
  • ELASTIC_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

rivia_es_cloud-1.2.7.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rivia_es_cloud-1.2.7-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file rivia_es_cloud-1.2.7.tar.gz.

File metadata

  • Download URL: rivia_es_cloud-1.2.7.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for rivia_es_cloud-1.2.7.tar.gz
Algorithm Hash digest
SHA256 f0a106d1964ad2eefc9977ddd1888295da04f54dbf8c2b8722b43235a14b3a26
MD5 b9bdeea32e2a6f2b428d6e0617c46205
BLAKE2b-256 2f9c948bb3ce2f231ab57225cb725217ca64b5f8a70b528a07599c7d55289588

See more details on using hashes here.

File details

Details for the file rivia_es_cloud-1.2.7-py3-none-any.whl.

File metadata

  • Download URL: rivia_es_cloud-1.2.7-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for rivia_es_cloud-1.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 56633413d184bcddc4b90ab242641de2852d186170b8d97d68d44a09ef656af5
MD5 884881d3bd9a32b41c54dfc9f9111486
BLAKE2b-256 b367427909bdb8a0a34948254b58aa9f4aad3a2d202b730d501468ce8f85646d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page