1+
2+ from fastapi import APIRouter
3+ from repository .schemas import Search
4+ from injector import (logger , doc )
5+ # from injector import (logger, doc, SearchOmniHandlerInject, QueryBuilderInject)
6+ import json
7+ import datetime
8+
9+ app = APIRouter (
10+ prefix = "/cluster" ,
11+ )
12+
13+ @app .post ("/sharding_predict" , description = "Cluster sharding predict" , summary = "Cluster sharding predict" )
14+ async def Cluster_sharding_estimate (request : Search ):
15+ ''' Search to Elasticsearch '''
16+ StartTime , EndTime , Delay_Time = 0 , 0 , 0
17+
18+ try :
19+ StartTime = datetime .datetime .now ()
20+
21+ # logger.info("api_controller doc: {}".format(json.dumps(doc, indent=2)))
22+ # request_json = {k : v for k, v in request}
23+ request_json = request .to_json ()
24+ print (request , type (request ), request .size , request_json )
25+ logger .info ("es_search_controller : {}" .format (json .dumps (request_json , indent = 2 )))
26+
27+ EndTime = datetime .datetime .now ()
28+
29+ # return await SearchOmniHandlerInject.search(QueryBuilderInject, oas_query=request_json)
30+ return {'results' :
31+ {
32+ "the number of primary shards" : 1 ,
33+ "the number of replica shards" : 1
34+ }
35+ }
36+
37+ finally :
38+ Delay_Time = str ((EndTime - StartTime ).seconds ) + '.' + str ((EndTime - StartTime ).microseconds ).zfill (6 )[:2 ]
39+ logger .info ('Metrics : {}' .format (Delay_Time ))
0 commit comments