This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
Pinned Query
editPinned Query
editPromotes 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
editresp = client.search( query={ "pinned": { "ids": [ "1", "4", "100" ], "organic": { "match": { "description": "iphone" } } } }, ) print(resp)
response = client.search( body: { query: { pinned: { ids: [ '1', '4', '100' ], organic: { match: { description: 'iphone' } } } } } ) puts response
const response = await client.search({ query: { pinned: { ids: ["1", "4", "100"], organic: { match: { description: "iphone", }, }, }, }, }); console.log(response);
GET /_search { "query": { "pinned": { "ids": [ "1", "4", "100" ], "organic": { "match": { "description": "iphone" } } } } }
Top-level parameters for pinned
edit-
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.
Pin documents in a specific index
editIf you’re searching over multiple indices, you can pin a document within a specific index using docs
:
resp = client.search( query={ "pinned": { "docs": [ { "_index": "my-index-000001", "_id": "1" }, { "_id": "4" } ], "organic": { "match": { "description": "iphone" } } } }, ) print(resp)
response = client.search( body: { query: { pinned: { docs: [ { _index: 'my-index-000001', _id: '1' }, { _id: '4' } ], organic: { match: { description: 'iphone' } } } } } ) puts response
const response = await client.search({ query: { pinned: { docs: [ { _index: "my-index-000001", _id: "1", }, { _id: "4", }, ], organic: { match: { description: "iphone", }, }, }, }, }); console.log(response);