OpenSearch/docs/reference/mapping/fields/uid-field.asciidoc
Ryan Ernst a03b6c2fa5 Scripting: Change keys for inline/stored scripts to source/id (#25127)
This commit adds back "id" as the key within a script to specify a
stored script (which with file scripts now gone is no longer ambiguous).
It also adds "source" as a replacement for "code". This is in an attempt
to normalize how scripts are specified across both put stored scripts and script usages, including search template requests. This also deprecates the old inline/stored keys.
2017-06-09 08:29:25 -07:00

72 lines
1.6 KiB
Plaintext

[[mapping-uid-field]]
=== `_uid` field
deprecated[6.0.0, Now that types have been removed, documents are uniquely
identified by their `_id` and the `_uid` field has only been kept as a view
over the `_id` field for backward compatibility.]
Each document indexed is associated with a <<mapping-type-field,`_type`>> (see
<<mapping-type>>) and an <<mapping-id-field,`_id`>>. These values are
combined as `{type}#{id}` and indexed as the `_uid` field.
The value of the `_uid` field is accessible in queries, aggregations, scripts,
and when sorting:
[source,js]
--------------------------
# Example documents
PUT my_index/my_type/1
{
"text": "Document with ID 1"
}
PUT my_index/my_type/2?refresh=true
{
"text": "Document with ID 2"
}
--------------------------
// CONSOLE
[source,js]
--------------------------
GET my_index/_search
{
"query": {
"terms": {
"_uid": [ "my_type#1", "my_type#2" ] <1>
}
},
"aggs": {
"UIDs": {
"terms": {
"field": "_uid", <2>
"size": 10
}
}
},
"sort": [
{
"_uid": { <3>
"order": "desc"
}
}
],
"script_fields": {
"UID": {
"script": {
"lang": "painless",
"source": "doc['_uid']" <4>
}
}
}
}
--------------------------
// CONSOLE
// TEST[continued]
// TEST[warning:Fielddata access on the _uid field is deprecated, use _id instead]
<1> Querying on the `_uid` field (also see the <<query-dsl-ids-query,`ids` query>>)
<2> Aggregating on the `_uid` field
<3> Sorting on the `_uid` field
<4> Accessing the `_uid` field in scripts