def or_field_filters(field_name, field_values):
    """OR filter returns documents that contain a field matching any of the values.

    Returns a list containing a single Elasticsearch "terms" filter.
    "terms" filter matches the given field with any of the values.

    "bool" execution generates a term filter (which is cached) for each term,
    and wraps those in a bool filter. This way each individual value match is
    cached (as opposed to the default of caching the whole filter result) and
    the cache can be reused in different combinations of values.

    (https://www.elastic.co/guide/en/elasticsearch/reference/1.6/query-dsl-terms-filter.html)

    """
    return [
        {
            "terms": {
                field_name: field_values[0].split(","),
            },
        },
    ]