Skip to main content

Collections of ElasticSearch pyscripts for human

Project description

ElasticSearchCollections

Collections of ElasticSearch pyscripts for human

Example

from elasticSearch_collections.elasticSearch_collections import ElasticSearchCollections
from typing import Dict, List

# Connect to es hosts
es = ElasticSearchCollections(["https://127.0.0.1"],
                              http_auth=("username", "password"),
                              ca_certs=False,
                              verify_certs=False,
                              timeout=600)

def fn_data_update(_data: List[Dict]):
    actions = []
    for i in _data:
        #  do something
        action = {
            "_op_type": "update",
            "_index": i["_index"],
            "_type": "_doc",
            "_id": i["_id"],
            "doc": {
                # update logic
            }
        }
        actions.append(action)
    if actions:
        es.bulk(actions)
        

es_search_info = {
        "index": '_index',
        "scroll": '1m',
        "size": 1000,
        "body": """{
              "query": {
                "match_all": {}
              }
            }""",
        "timeout": "10m"
    }

_res_list = es.scroll_source_generator(es_search_info)
# run multiple threads with threado
from threado.simple_thread_runner import SimpleThreadsRunner
# Define the num_workers and batch_size
# refer to https://github.com/AlexNg9527/threado
sr = SimpleThreadsRunner(num_workers=10,fn=fn_data_update)
sr.run_threads(iter_data=_res_list, batch_size=10)

# clear scroll_id
es.delete_scroll_id()

Installing and Supported Versions

elasticSearch_collections is available on PyPI:

$ python -m pip install elasticSearch_collections

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

elasticSearch_collections-1.0.tar.gz (3.5 kB view hashes)

Uploaded Source

Built Distribution

elasticSearch_collections-1.0-py3-none-any.whl (4.2 kB view hashes)

Uploaded Python 3

Supported by

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