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.
Example request
GET /_search
{
"query": {
"pinned": {
"ids": [ "1", "4", "100" ],
"organic": {
"match": {
"description": "iphone"
}
}
}
}
} Top-level parameters for pinned
-
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 - (Required, string) The index that contains the document.
-
-
organic - Any choice of query used to rank documents which will be ranked below the "pinned" documents.
Pin documents in a specific index
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"
},
{
"_index": "my-index-000001",
"_id": "4"
},
{
"_index": "my-index-000002",
"_id": "100"
}
],
"organic": {
"match": {
"description": "iphone"
}
}
}
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/query-dsl-pinned-query.html