_tier 字段
编辑_tier
字段
编辑当跨多个索引执行查询时,有时需要定位到给定数据层(data_hot
、data_warm
、data_cold
或 data_frozen
)节点上保存的索引。 _tier
字段允许匹配文档被索引到的索引的 tier_preference
设置。 首选值可在某些查询中访问。
resp = client.index( index="index_1", id="1", document={ "text": "Document in index 1" }, ) print(resp) resp1 = client.index( index="index_2", id="2", refresh=True, document={ "text": "Document in index 2" }, ) print(resp1) resp2 = client.search( index="index_1,index_2", query={ "terms": { "_tier": [ "data_hot", "data_warm" ] } }, ) print(resp2)
response = client.index( index: 'index_1', id: 1, body: { text: 'Document in index 1' } ) puts response response = client.index( index: 'index_2', id: 2, refresh: true, body: { text: 'Document in index 2' } ) puts response response = client.search( index: 'index_1,index_2', body: { query: { terms: { _tier: [ 'data_hot', 'data_warm' ] } } } ) puts response
const response = await client.index({ index: "index_1", id: 1, document: { text: "Document in index 1", }, }); console.log(response); const response1 = await client.index({ index: "index_2", id: 2, refresh: "true", document: { text: "Document in index 2", }, }); console.log(response1); const response2 = await client.search({ index: "index_1,index_2", query: { terms: { _tier: ["data_hot", "data_warm"], }, }, }); console.log(response2);
PUT index_1/_doc/1 { "text": "Document in index 1" } PUT index_2/_doc/2?refresh=true { "text": "Document in index 2" } GET index_1,index_2/_search { "query": { "terms": { "_tier": ["data_hot", "data_warm"] } } }
通常,查询会使用 terms
查询来列出感兴趣的层,但您可以在任何被重写为 term
查询的查询中使用 _tier
字段,例如 match
、query_string
、term
、terms
或 simple_query_string
查询,以及 prefix
和 wildcard
查询。但是,它不支持 regexp
和 fuzzy
查询。
索引的 tier_preference
设置是以逗号分隔的层名称列表,按偏好顺序排列。 即,索引的首选托管层排在第一位,后跟可能存在的多个回退选项。 查询匹配仅考虑第一个偏好(列表的第一个值)。