Pinned query
Promotes selected documents to rank higher than those matching a given query. This feature is typically used to guide searchers to curated documents that are promoted over and above any "organic" matches for a search. The promoted or "pinned" documents are identified using the document IDs stored in the _id field.
Note
Pinned queries are designed to work only with relevance-based sorting. Using explicit sort criteria overrides the pinned document promotion.
GET /_search
{
"query": {
"pinned": {
"ids": [ "1", "4", "100" ],
"organic": {
"match": {
"description": "iphone"
}
}
}
}
}
ids- (Optional, array) Document IDs listed in the order they are to appear in results. Required if
docsis not specified. docs-
(Optional, array) Documents listed in the order they are to appear in results. Required if
idsis not specified. You can specify the following attributes for each document:_id- (Required, string) The unique document ID.
_index- (Optional, string) The index that contains the document.
organic- Any choice of query used to rank documents which will be ranked below the "pinned" documents.
If you’re searching over multiple indices, you can pin a document within a specific index using docs:
GET /_search
{
"query": {
"pinned": {
"docs": [
{
"_index": "my-index-000001",
"_id": "1"
},
{
"_id": "4"
}
],
"organic": {
"match": {
"description": "iphone"
}
}
}
}
}
- The document with id
1frommy-index-000001will be the first result. - When
_indexis missing, all documents with id4from the queried indices will be pinned with the same score.