Skip to content

SimonDR-Boltzmann/elasticsearch-service

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ElasticSearchService

First install with pip

pip install elasticsearch-service

To use , simply do::

 from elasticsearch_service import ElasticsearchService

##Configure your elk Service with your parameters

With no authentification define your host(default='localhost' and port (default=9200)::

elk_service=ElasticsearchService() # default localhost and port 9200
    OR (ONLY FOR URL DIFFERENT Of localhost AND PORT IS NOT 9200   
elk_service=ElasticsearchService('myurl',9201)

With HTTP basic authentification host, port and additional informations::

elk_service=ElasticsearchService('localhost',9200,scheme = 'http',http_auth_username = 'myuser',http_auth_password='mypassword')

##To import objects in ELK use :

elk_service.import_documents(index_elk ,list_of_dict )

where index_elk is a string like 'myelk-index' where list_of_dict is a list of dict like [{'id':'id1','field1':'value1,'field1','field2':'value2'},{'id':'id2','field1':'value3,'field2','field2':'value4'}]::

list_of_values=[{'_id':'myid1','field1':'value1','field2':'value2','date':'2016-07-15T15:29:50+02:00'},{'_id':'myid2','field1':'value33','field2':'value4','date':'2016-07-15T15:29:50+02:00'}]
elk_service.import_documents('myelk-index',list_of_values)

##To search Objects in ELK use :

elk_service.get_documents(index ,parameter )

    where index  is a string like 'myelk-index'

    where parameter  are :
        To Specify a dateField use
            timefield='my_date_field'

            If so, you must specified a start date GREATER OR EQUAL
               startdate='2020-04-01'
            And a end date LESS than (and not EQUAL)
               enddate='2020-04-02'

        To Specify your query in a dict format use
            filters={'field1':['value1','valuer2'],'field2:[value]}
        To specify your query you MUST NOT in a dict format use
            exclude={'field1':['value1','valuer2']}
        To specify query with wildcard use
             {'field1.keyword': 'value*'}
        To get only somme fields use :
            field_to_include={'include':['field1','field2']}

examples ::

hits=elk_service.get_documents('myelk-index')
hits=elk_service.get_documents('myelk-index',timefield='date',startdate='2020-04-01',enddate='2020-04-02')
hits=elk_service.get_documents('myelk-index',filters={'field1':['value1','value3'],'field2':['value4']})
hits=elk_service.get_documents('myelk-index',filters={'field1':['value1','value3']},wildcard={'field1.keyword':'value3*'})

examples to get values from search (to have hits)::

 for hit in hits:
    # if you want to access to your value in dict format
    values_in_dictformat=hit.to_dict()
    # OR
    # if you want to access to a specific value
    field1=hit.field1

##TO Export a document in json(default) or csv file use :

export_documents(INDEX ,FILENAME ,FORMAT ,PARAMETER )

    where INDEX  is the index to export (strings)
    where FILENAME  is the file name (string)
    where FORMAT  can be json (default) ou csv
    where PARAMETER  is the same than method getDocument() see previous7

example:

elk_service.export_documents('myelk-index','elkdata.json')
elk_service.export_documents('myelk-index','elkdata.csv',format='csv')

##TO Import a json or csv file use :

import_documents_from_file(INDEX ,FILENAME )
Note that :
for csv file : default delimiter is ;
for json file: must be list of value like [{"id": "id1"},{"id": "id2"}]

    where INDEX  is the index to export (strings)
    where FILENAME  is the file name (string) : can
    where FORMAT  is the type of file : json (default) or csv

example :

elk_service.import_documents_from_file('myelk-index1','elkdata.json')
elk_service.import_documents_from_file('myelk-index2','elkdata.csv') # if delimiter is ;
elk_service.import_documents_from_file('myelk-index3','elkdata.csv',delimiter=',') # if delimiter is ,

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%