How To Insert and search Data To/From Elasticsearch Using Python or Python3
# Prerequisites:
- python3
- ubuntu 18.04
- java1.8
- Create a project directory python-elasticsearch with two files main.py and requirement.txt
# Install Elasticsearch module
- Write "elasticsearch" in requirement.txt and run following command in terminal
- sudo pip3 install -r requirement.txt
# Install Elasticsearch on Ubuntu
- sudo apt update
- sudo apt-get install apt-transport-http
- wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- sudo add-apt-repository "deb https://artifacts.elastic.co/packages/7.x/apt stable main"
- sudo apt update
- sudo apt install elasticsearch
- To start Elasticsearch process
sudo /etc/init.d/elasticsearch start
sudo /etc/init.d/elasticsearch status - Test setup
curl -X GET "http://localhost:9200/?pretty"
# Writing Python Code To Store And Fetch Data
# Import elasticsearch module from elasticsearch import Elasticsearch #import json # Method to store data in elasticsearch def send_data_to_es(data): es=Elasticsearch(['localhost:9200']) res = es.index(index='employee',doc_type='devops',body=data) print(res) # Method to get data from elasticsearch def get_data_from_es(): es=Elasticsearch(['localhost:9200']) r = es.search(index="employee", body={"query": {"match": {'Name':'john'}}}) print(r) print(type(r)) print(r["hits"]["hits"][0]["_source"]) # Main function from where the execution starts if __name__== "__main__": # Define a dictoinary having required data to be stored in ES data = {"Name": "john", "Age":27, "address": "winterfell"} # Call method to store data in ES send_data_to_es(data) # Call method to get data from ES get_data_from_es()
# Running the code
To run the above code simply run the following command in the terminal from root directory of python-elasticsearch project
python3 main.py
0 comments:
Post a Comment