mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-05-19 23:24:57 +00:00
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.
72 lines
1.6 KiB
Plaintext
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
|