Skip to main content

A base resource for working with the Elasticsearch and ElasticsearchDSL libraries in a simple way.

Project description

P_Elascticsearch_Easy

Python Version License

Description

P_Elascticsearch_Easy is a Python utility that provides a simplified class for interacting with elasticsearch and elasticsearch_dsl.

Features

  • Create a connection with Elasticsearch
  • Retrieve a document given an ID
  • Perform a delete_by_query
  • Update a document
  • Perform an update_by_query
  • Index a document
  • Index a document given an ID
  • Delete a document given an ID
  • Perform a bulk operation using the helpers library
  • Perform a native bulk operation without using the helpers library
  • Perform searches in indices using queries
  • Retrieve all documents matching a query
  • Perform searches using msearch
  • Perform searches using mget
  • Get a count of documents matching a query

Installation

You can install the package directly from PyPi using pip:

pip install p-elasticsearch-easy

Usage

Example of use ElasticsearchNative

from p_elasticsearch_easy import ElasticsearchNative

# Create de instancia of ElasticsearchNative
es_native: ElasticsearchNative = ElasticsearchNative("https://elastic.com:9243")

# Connect
es_native.connect()

# We execute the get_document_by_id
resp = es_native.search(id="id", index="name_index")

# We execute the delete_by_query
query = {"query":{"match_all":{}}}
es_native.delete_by_query(information=query, index="name_index")

# We execute de update
doc = {
    "field1": "value",
    "field_2": "value"
}
es_native.update(document=doc, id="id", index="name_index")

# We execute the update_by_query
query = {"query":{"match_all":{}}}
es_native.update_by_query(body=query, index="name_index", wait_for="true")

# We execute the index
doc = {
    "field1": "value",
    "field_2": "value"
}
es_native.index(document=doc, index="name_index")

# We execute the search
query = {
    "size": 10,
    "query": {"bool": {"must": [{"term": {"name_field": {"value": ""}}}]}},
}

resp = es_native.search(index="name_index", body=query)

# We execute the bulk
actions = [
    {
        "_op_type": "index",
        "_index": "mi_indice",
        "_source": {
            "title": "Documento 1",
            "contenido": "Este es el primer documento"
        }
    },
    {
        "_op_type": "index",
        "_index": "mi_indice",
        "_source": {
            "title": "Documento 2",
            "contenido": "Este es el segundo documento"
        }
    }
]

success_count, errors = es_native.bulk(actions=actions)

# We execute the bulk without helper
operations = [
    json.dumps({ "index": { "_index": "mi_indice", "_id": "1" } }),
    json.dumps({ "title": "Documento 1", "contenido": "Este es el primer documento" }),
    json.dumps({ "index": { "_index": "mi_indice", "_id": "2" } }),
    json.dumps({ "title": "Documento 2", "contenido": "Este es el segundo documento" })
]

es_native.bulk_without_helper(operations=operations, wait_for="wait_for")

# We execute the search_all
query = {
    "query": {"bool": {"must": [{"term": {"name_field": {"value": ""}}}]}},
}
es_native.search_all(body=query, index="name_index")

# We execute the msearch
searches = [
    {"index": "mi_indice"},
    {
        "query": {
            "match": {
                "contenido": "primer"
            }
        }
    },
    {"index": "mi_indice"},
    {
        "query": {
            "match": {
                "contenido": "segundo"
            }
        }
    }
]

es_native.msearch(searches=searches)

# We execute de mget
doc_ids = ["1", "2", "3"]

response = es_native.mget(index="name_index", doc_ids=doc_ids)

# We execute the count
query = {
    "query": {"bool": {"must": [{"term": {"name_field": {"value": ""}}}]}},
    
}
resp = es_native.count(index="name_index", body=query)

# We close the connection
es_native.close()

License

This project is licensed under the GNU GPLv3 license. See the LICENSE file for more details.

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

p_elasticsearch_easy-1.1.1.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

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

p_elasticsearch_easy-1.1.1-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

Details for the file p_elasticsearch_easy-1.1.1.tar.gz.

File metadata

  • Download URL: p_elasticsearch_easy-1.1.1.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for p_elasticsearch_easy-1.1.1.tar.gz
Algorithm Hash digest
SHA256 ef728bf1802201e51ec0eb9322bd025db25db72bc6a79b99a549eb815e22be08
MD5 4af99ad469ff76f3517485ce3a81184f
BLAKE2b-256 2de2d50346d492d8a910b3a96071199f4091ce45c4bcc777b26b7729eb7df651

See more details on using hashes here.

Provenance

The following attestation bundles were made for p_elasticsearch_easy-1.1.1.tar.gz:

Publisher: publish.yml on apo00015/P_Elascticsearch_Easy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file p_elasticsearch_easy-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for p_elasticsearch_easy-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b63a7f835f73dadb58bd875f028a913f1e07170ed856e15b53780fb737dabc04
MD5 0ed29d2b9003562c4cdb91fabd546766
BLAKE2b-256 1679acc7ce97840b78d9c8534cb97b8e69ae9f6443ff60ea1b8fce643fc58607

See more details on using hashes here.

Provenance

The following attestation bundles were made for p_elasticsearch_easy-1.1.1-py3-none-any.whl:

Publisher: publish.yml on apo00015/P_Elascticsearch_Easy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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