Python - Elasticsearch Integration (for Aasaanjobs Internal Usage)
Project description
Aasaanjobs Elasticsearch SDK
Library to handle elasticsearch related transactions in Python (for internal usage in Aasaanjobs)
Requirements
- Python 3.5 and greater
- Elasticsearch Python
Installation
Install using pip
pip install ajelastic
Configuration
The AJ Elastic library reads configurations from module path specified in the environment
variable AJELASTIC_SETTINGS_MODULE
if its a standalone python project, or the
DJANGO_SETTINGS_MODULE
environment variable if its a Django project.
export AJELASTIC_SETTINGS_MODULE=tests.settings
Example
Below is an example settings module that can be consumed by the library
# Mandatory Settings # Elasticsearch host and port ES_HOST = "http://localhost:9200" # The environment suffix that will be added in the Elasticsearch index names ES_ENV = "development" # Optional Settings # List of Elasticsearch indices ES_INDICES = { "User": { "name": "users", # The index name prefix "doc_type": "user", # Elastic document type "data_functions": { "single": "tests.data:get_user", # Function to fetch a user; should accept a single ID argument "multi": "tests.data:list_users" # Function to fetch list of users; should accept two arguments; limit and offset }, "mapping_path": "tests/user_mapping.json" # Path to the JSON mapping of the document structure } }
Commands to Sync Data with Elasticsearch
This library provides the following command line scripts to synchronize/initialize data
aj-es-reindex
This command will reindex the documents from scratch fetching data from the function defined in the data_functions.multi
settings of the entity (i.e., withing the ES_INDICES
settings).
For eg, the below command will reindex the User entity, fetching data from the list_users
function (as specified in the settings)
with a batch size of 100, i.e., in a single request 100 users will be index to elasticsearch.
aj-es-reindex User 100
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.