Hang Zhang

15 papers A* 1B 7Journal 7
YearRankTypeTitle / Venue / Authors
2025 B conf
CogSci
Jianbo Chen, Tianyuan Teng, Yuxiu Shao, Hang Zhang
2025 B conf
CogSci
Yang-Fan Lu, Qianli Yang, Hang Zhang
2024 J jnl
Nat. Comput. Sci.
Xiaoyan Wu, Xiangjuan Ren, Chao Liu, Hang Zhang
2023 A* conf
NeurIPS
Tianyuan Teng, Kevin Li, Hang Zhang
2023 B conf
CogSci
Yangfan Lu, Hang Zhang
2023 B conf
CogSci
Jianbo Chen, Tianyuan Teng, Hang Zhang
2023 J jnl
Cogn. Sci.
Yi-Long Lu, Yang-Fan Lu, Zhuo Rachel Han, Shaozheng Qin, Xin Zhang, Li Yi, Hang Zhang
2023 B conf
CogSci
Haoyang Lu, Tianyuan Teng, Hang Zhang
2021 B conf
CogSci
Yi-Long Lu, Yang-Fan Lu, Zhuo Rachel Han, Shaozheng Qin, Xin Zhang, Li Yi, Hang Zhang
2021 B conf
CogSci
Tianyuan Teng, Hang Zhang
2019 J jnl
PLoS Comput. Biol.
Haoyang Lu, Li Yi, Hang Zhang
2019 J jnl
PLoS Comput. Biol.
Jingwei Sun, Jian Li, Hang Zhang
2013 J jnl
PLoS Comput. Biol.
Hang Zhang, Nathaniel D. Daw, Laurence T. Maloney
2012 J jnl
PLoS Comput. Biol.
Hang Zhang, Camille Morvan, Louis-Alexandre Etezad-Heydari, Laurence T. Maloney
2010 J jnl
PLoS Comput. Biol.
Hang Zhang, Camille Morvan, Laurence T. Maloney
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()