1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- [[copy-to]]
- === `copy_to`
- 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:
- [source,js]
- --------------------------------------------------
- PUT my_index
- {
- "mappings": {
- "properties": {
- "first_name": {
- "type": "text",
- "copy_to": "full_name" <1>
- },
- "last_name": {
- "type": "text",
- "copy_to": "full_name" <1>
- },
- "full_name": {
- "type": "text"
- }
- }
- }
- }
- PUT my_index/_doc/1
- {
- "first_name": "John",
- "last_name": "Smith"
- }
- GET my_index/_search
- {
- "query": {
- "match": {
- "full_name": { <2>
- "query": "John Smith",
- "operator": "and"
- }
- }
- }
- }
- --------------------------------------------------
- // CONSOLE
- <1> The values of the `first_name` and `last_name` fields are copied to the
- `full_name` field.
- <2> The `first_name` and `last_name` fields can still be queried for the
- first name and last name respectively, but the `full_name` field can be
- queried for both first and last names.
- Some important points:
- * It is the field _value_ which is copied, not the terms (which result from the analysis process).
- * The original <<mapping-source-field,`_source`>> field will not be modified to show the copied values.
- * The same value can be copied to multiple fields, with `"copy_to": [ "field_1", "field_2" ]`
- * You cannot copy recursively via intermediary fields such as a `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.
|