def get_text_expansion_request_body()

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


def get_text_expansion_request_body(query, size=10, **options):
    """
    Generates an ES text expansion search request.
    """
    fields = datasets[options["dataset"]]["elser_search_fields"]
    result_fields = datasets[options["dataset"]]["result_fields"]
    text_expansions = []
    boost = 1

    for field in fields:

        split_field_descriptor = field.split("^")
        if len(split_field_descriptor) == 2:
            boost = split_field_descriptor[1]
            field = split_field_descriptor[0]
        te = {"text_expansion": {}}
        te["text_expansion"][field] = {
            "model_text": query,
            "model_id": ".elser_model_1",
            "boost": boost,
        }
        text_expansions.append(te)
    return {
        "_source": False,
        "fields": result_fields,
        "size": size,
        "query": {"bool": {"should": text_expansions}},
    }