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.
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
docs
is not specified. docs
-
(Optional, array) Documents listed in the order they are to appear in results. Required if
ids
is 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", 1
"_id": "1"
},
{
"_id": "4" 2
}
],
"organic": {
"match": {
"description": "iphone"
}
}
}
}
}
- The document with id
1
frommy-index-000001
will be the first result. - When
_index
is missing, all documents with id4
from the queried indices will be pinned with the same score.