Ejemplo n.º 1
0
def query():
    # extract all the potential query arguments
    es = request.values.get("es") # <elasticsearch query object>
    if es is None:
        es = request.values.get("source") # alternative location for the es query object
    q = request.values.get("q") # <free text search>
    fields = request.values.get("fields") # <list of top level fields required>
    from_number = request.values.get("from") # <start result number>
    size = request.values.get("size") # <page size>
    
    # the es argument is an encoded json string
    if es is not None:
        es = json.loads(es)
    
    print es
    
    # fields is a comma separated list of values
    # which may consist only of "admin" or "register"
    if fields is not None:
        fields = [f.strip() for f in fields.split(",") if f.strip() in ["admin", "register"]]
    
    es_result = RegistryAPI.search(es=es, q=q, fields=fields, from_number=from_number, size=size)
    
    # return a json response
    resp = make_response(json.dumps(es_result))
    resp.mimetype = "application/json"
    return resp