_tier 字段编辑

在跨多个索引执行查询时,有时需要定位到特定数据层级(data_hotdata_warmdata_colddata_frozen)节点上保存的索引。_tier 字段允许匹配文档被索引到的索引的 tier_preference 设置。首选值可在某些查询中访问。

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
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"] 
    }
  }
}

查询 _tier 字段

通常,查询将使用 terms 查询来列出感兴趣的层级,但您可以在任何重写为 term 查询的查询中使用 _tier 字段,例如 matchquery_stringtermtermssimple_query_string 查询,以及 prefixwildcard 查询。但是,它不支持 regexpfuzzy 查询。

索引的 tier_preference 设置是一个逗号分隔的层级名称列表,按优先级排序,即,用于托管索引的首选层级列在最前面,后面是可能存在的多个回退选项。查询匹配仅考虑第一个首选项(列表的第一个值)。