I. D. Hill

18 papers Journal 18
YearRankTypeTitle / Venue / Authors
2006 J jnl
Comput. Stat. Data Anal.
Brian A. Wichmann, I. D. Hill
1988 J jnl
ACM Trans. Math. Softw.
R. S. Cormack, I. D. Hill
1985 J jnl
ACM Trans. Math. Softw.
I. D. Hill, Malcolm C. Pike
1978 J jnl
Comput. J.
R. M. De Morgan, I. D. Hill, Brian A. Wichmann
1975 J jnl
Softw. Pract. Exp.
I. D. Hill, Roger S. Scowen, Brian A. Wichmann
1975 J jnl
ACM SIGPLAN Notices
I. D. Hill, Roger S. Scowen, Brian A. Wichmann
1973 J jnl
Comput. J.
Valerie G. Coulson, I. D. Hill, Valerie F. Hillier
1971 J jnl
Comput. J.
I. D. Hill
1969 J jnl
Commun. ACM
I. D. Hill
1967 J jnl
Commun. ACM
I. D. Hill, Malcolm C. Pike
1967 J jnl
Commun. ACM
I. D. Hill, S. A. Joyce
1967 J jnl
Commun. ACM
I. D. Hill, S. A. Joyce
1967 J jnl
Commun. ACM
Malcolm C. Pike, I. D. Hill
1966 J jnl
Commun. ACM
I. D. Hill, Malcolm C. Pike
1966 J jnl
Commun. ACM
Malcolm C. Pike, I. D. Hill
1966 J jnl
Commun. ACM
Malcolm C. Pike, I. D. Hill
1966 J jnl
Commun. ACM
Malcolm C. Pike, I. D. Hill
1965 J jnl
Commun. ACM
Malcolm C. Pike, I. D. Hill
redb/settings/elasticsearch.py
← Index redb/settings/elasticsearch.py python
import logging
import os

from elasticsearch import Elasticsearch
from dotenv import load_dotenv

load_dotenv()

# Elasticsearch configuration
ELASTIC_ENDPOINT = os.getenv("ELASTIC_HOST")
ELASTIC_ENFORCE_SSL = os.getenv("ELASTIC_ENFORCE_SSL", False) == "True"
ELASTIC_USER = os.getenv("ELASTIC_USER")
ELASTIC_PASSWORD = os.getenv("ELASTIC_PASSWORD")
ELASTIC_BINARIES_COLLECTION = os.getenv("ELASTIC_BINARIES_COLLECTION", "test_db")

# Cached client instance
_elasticsearch_client = None

def get_elasticsearch_client():
    """Get Elasticsearch client with lazy initialization and caching"""
    global _elasticsearch_client
    
    if _elasticsearch_client is None:
        if not ELASTIC_ENDPOINT:
            raise ValueError("ELASTIC_HOST environment variable is required for Elasticsearch connection")
            
        _elasticsearch_client = Elasticsearch(
            ELASTIC_ENDPOINT,
            verify_certs=ELASTIC_ENFORCE_SSL,
            basic_auth=(ELASTIC_USER, ELASTIC_PASSWORD),
            maxsize=20,
            retry_on_timeout=True,
            timeout=30,
        )
    
    return _elasticsearch_client

def create_elasticsearch_client():
    """Create a new Elasticsearch client connection (legacy function)"""
    return get_elasticsearch_client()