The copy_to parameter allows you to copy the values of multiple
fields into a group field, which can then be queried as a single
field. For instance, the first_name and last_name fields can be copied to
the full_name field as follows:
PUT my_index
{
  "mappings": {
    "properties": {
      "first_name": {
        "type": "text",
        "copy_to": "full_name"  },
      "last_name": {
        "type": "text",
        "copy_to": "full_name"
      },
      "last_name": {
        "type": "text",
        "copy_to": "full_name"  },
      "full_name": {
        "type": "text"
      }
    }
  }
}
PUT my_index/_doc/1
{
  "first_name": "John",
  "last_name": "Smith"
}
GET my_index/_search
{
  "query": {
    "match": {
      "full_name": {
      },
      "full_name": {
        "type": "text"
      }
    }
  }
}
PUT my_index/_doc/1
{
  "first_name": "John",
  "last_name": "Smith"
}
GET my_index/_search
{
  "query": {
    "match": {
      "full_name": {  "query": "John Smith",
        "operator": "and"
      }
    }
  }
}
        "query": "John Smith",
        "operator": "and"
      }
    }
  }
}| 
The values of the  | |
| 
The  | 
Some important points:
_source field will not be modified to show the copied values.
"copy_to": [ "field_1", "field_2" ]
copy_to on
field_1 to field_2 and copy_to on field_2 to field_3 expecting
indexing into field_1 will eventuate in field_3, instead use copy_to
directly to multiple fields from the originating field.