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.
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.