def route_api_search()

in example-apps/relevance-workbench/app-api/app.py [0:0]


def route_api_search(index):
    """
    Execute the search
    """
    [query, rrf, type, k, datasetId] = [
        request.args.get("q"),
        request.args.get("rrf", default=False, type=lambda v: v.lower() == "true"),
        request.args.get("type", default="bm25"),
        request.args.get("k", default=0),
        request.args.get("dataset", default="movies"),
    ]
    if type == "elser":
        search_result = run_semantic_search(
            query, index, **{"rrf": rrf, "k": k, "dataset": datasetId}
        )
    elif type == "bm25":
        search_result = run_full_text_search(query, index, **{"dataset": datasetId})
    transformed_search_result = transform_search_response(
        search_result, datasets[datasetId]["mapping_fields"]
    )
    return jsonify(response=transformed_search_result)