vectordb-genai-101/chat-app-code/backend/services/search_service.py (27 lines of code) (raw):

from elasticsearch import Elasticsearch import logging import os # Set up logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(module)s:%(lineno)d - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) # Initialize the Elasticsearch client es_client = Elasticsearch( hosts=os.getenv('ES_URL', 'http://kubernetes-vm:9200'), # api_key=os.getenv('ES_API_KEY') basic_auth=( os.getenv('ES_USER', 'elastic'), os.getenv('ES_PASSWORD', 'changeme') ) ) def perform_es_search(query, index): """Performs the Elasticsearch query based on the context type.""" logging.info(f"Starting Elasticsearch search for query: {query}") ## TODO USERS ENTER QUERY CODE HERE es_query = { } try: result = es_client.search(index="restaurant_reviews", body=es_query) except Exception as e: # If generated query fails fallback to backup query logging.error(f"Error in Elasticsearch search: {str(e)}") raise # logging.info(f"elasticsearch results: {result}") hits = result["hits"]["hits"] logging.info(f"number of hits: {len(hits)}") return hits