Beispiel #1
0
def wait_cluster_available():
    auth_header = get_admin_auth_header()
    wait_elasticsearch(interval=5000, headers=auth_header)
    es_client = start()
    es_client.cluster.health(
        headers=auth_header,
        wait_for_status='yellow',
        request_timeout=240)
Beispiel #2
0
def start_up():
    try:
        auth_header = get_admin_auth_header()
        su_client = start()
        if not su_client.indices.exists(index_name, headers=auth_header):
            logging.info(f"Index {index_name} not found. Creating one.")
            create_index(su_client, index_name, headers=auth_header)
    finally:
        su_client.close()
Beispiel #3
0
def start_up(search_config_id: str,
             search_config_url: str = None,
             search_config_title: str = None,
             detail_config_id: str = None,
             metadata_config_url: str = None,
             detail_config_url: str = None,
             detail_config_title: str = None):
    conf = get_config()
    search_config_index_name = conf.get_string("search-config.index-name")
    search_config = conf.get_config("presets.file-search.search-config")

    detail_config_index_name = conf.get_string("detail-config.index-name")
    detail_config = conf.get_config("presets.file-search.detail-config")

    if detail_config_id is None:
        detail_config_id = search_config_id

    try:
        es_client = start()
        auth_header = get_admin_auth_header()
        if not es_client.exists(search_config_index_name,
                                search_config_id,
                                headers=auth_header):
            create_search_config(es_client,
                                 search_config_index_name,
                                 search_config_id,
                                 search_config,
                                 search_config_url,
                                 search_config_title,
                                 headers=auth_header)

        if not es_client.exists(detail_config_index_name,
                                detail_config_id,
                                headers=auth_header):
            create_detail_config(es_client,
                                 detail_config_index_name,
                                 detail_config_id,
                                 detail_config,
                                 metadata_config_url,
                                 detail_config_url,
                                 detail_config_title,
                                 headers=auth_header)
    finally:
        es_client.close()
Beispiel #4
0
def start_up():
    try:
        es_client = start()
        auth_header = get_admin_auth_header()
        if not es_client.indices.exists(index_name, headers=auth_header):
            create_sample_index(es_client, index_name, headers=auth_header)
            load_sample_data(es_client,
                             index_name,
                             num_docs=30,
                             headers=auth_header)
            load_sample_config(
                es_client,
                index_name=conf.get_string("search-config.index-name"),
                headers=auth_header)
            load_detail_config(
                es_client,
                index_name=conf.get_string("detail-config.index-name"),
                headers=auth_header)
    finally:
        es_client.close()
Beispiel #5
0
from elasticsearch import Elasticsearch
from fastapi import APIRouter, Depends, HTTPException, Path, Query, Request
from fastapi_elasticsearch import ElasticsearchAPIQueryBuilder
from response import (ElasticsearchHitBaseModel, ElasticsearchInnerHit,
                      ElasticsearchModelConverter, ElasticsearchResponseModel)
from starlette.responses import JSONResponse

from .loaddata import (create_sample_index, load_detail_config,
                       load_sample_config, load_sample_data)
from .start_up import index_name

conf = get_config()

router = APIRouter()

auth_header = get_admin_auth_header()


class SampleBaseHitModel(ElasticsearchHitBaseModel):
    name: str
    category: str


class SampleHitModel(SampleBaseHitModel):
    content_first_fragment: str
    content: ElasticsearchInnerHit[str] = []


query_builder = ElasticsearchAPIQueryBuilder()