2015-08-06 11:24:29 -04:00
|
|
|
[[include-in-all]]
|
|
|
|
=== `include_in_all`
|
|
|
|
|
|
|
|
The `include_in_all` parameter provides per-field control over which fields
|
|
|
|
are included in the <<mapping-all-field,`_all`>> field. It defaults to `true`, unless <<mapping-index,`index`>> is set to `no`.
|
|
|
|
|
|
|
|
This example demonstrates how to exclude the `date` field from the `_all` field:
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------
|
|
|
|
PUT my_index
|
|
|
|
{
|
|
|
|
"mappings": {
|
|
|
|
"my_type": {
|
|
|
|
"properties": {
|
|
|
|
"title": { <1>
|
|
|
|
"type": "string"
|
|
|
|
}
|
|
|
|
"content": { <1>
|
|
|
|
"type": "string"
|
|
|
|
},
|
|
|
|
"date": { <2>
|
|
|
|
"type": "date",
|
|
|
|
"include_in_all": false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
--------------------------------
|
|
|
|
// AUTOSENSE
|
|
|
|
|
|
|
|
<1> The `title` and `content` fields with be included in the `_all` field.
|
|
|
|
<2> The `date` field will not be included in the `_all` field.
|
|
|
|
|
2015-08-12 15:21:37 -04:00
|
|
|
TIP: The `include_in_all` setting is allowed to have different settings for
|
|
|
|
fields of the same name in the same index. Its value can be updated on
|
|
|
|
existing fields using the <<indices-put-mapping,PUT mapping API>>.
|
|
|
|
|
|
|
|
|
2015-08-06 11:24:29 -04:00
|
|
|
The `include_in_all` parameter can also be set at the type level and on
|
|
|
|
<<object,`object`>> or <<nested,`nested`>> fields, in which case all sub-
|
|
|
|
fields inherit that setting. For instance:
|
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------
|
|
|
|
PUT my_index
|
|
|
|
{
|
|
|
|
"mappings": {
|
|
|
|
"my_type": {
|
|
|
|
"include_in_all": false, <1>
|
|
|
|
"properties": {
|
|
|
|
"title": { "type": "string" },
|
|
|
|
"author": {
|
|
|
|
"include_in_all": true, <2>
|
|
|
|
"properties": {
|
|
|
|
"first_name": { "type": "string" },
|
|
|
|
"last_name": { "type": "string" }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"editor": {
|
|
|
|
"properties": {
|
|
|
|
"first_name": { "type": "string" }, <3>
|
|
|
|
"last_name": { "type": "string", "include_in_all": true } <3>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
--------------------------------
|
|
|
|
// AUTOSENSE
|
|
|
|
|
|
|
|
<1> All fields in `my_type` are excluded from `_all`.
|
|
|
|
<2> The `author.first_name` and `author.last_name` fields are included in `_all`.
|
|
|
|
<3> Only the `editor.last_name` field is included in `_all`.
|
|
|
|
The `editor.first_name` inherits the type-level setting and is excluded.
|
|
|
|
|
|
|
|
[NOTE]
|
|
|
|
.Multi-fields and `include_in_all`
|
|
|
|
=================================
|
|
|
|
|
|
|
|
The original field value is added to the `_all` field, not the terms produced
|
|
|
|
by a field's analyzer. For this reason, it makes no sense to set
|
|
|
|
`include_in_all` to `true` on <<multi-fields,multi-fields>>, as each
|
|
|
|
multi-field has exactly the same value as its parent.
|
|
|
|
|
|
|
|
=================================
|