_tier field
複数のインデックスにまたがるクエリを実行する際、特定のデータティア(data_hot
、data_warm
、data_cold
、またはdata_frozen
)に保持されているインデックスをターゲットにすることが望ましい場合があります。_tier
フィールドは、ドキュメントがインデックスされたインデックスのtier_preference
設定に基づいて一致させることを可能にします。好ましい値は特定のクエリでアクセス可能です:
Python
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)
Ruby
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
Js
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);
Console
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
クエリを使用して関心のあるティアをリストしますが、_tier
フィールドをterm
クエリに書き換えられた任意のクエリで使用できます。たとえば、match
、query_string
、term
、terms
、またはsimple_query_string
クエリ、さらにprefix
およびwildcard
クエリでも使用できます。ただし、regexp
およびfuzzy
クエリはサポートされていません。
インデックスのtier_preference
設定は、好ましい順序でティア名のカンマ区切りリストです。つまり、インデックスをホストするための好ましいティアが最初にリストされ、その後に多くのフォールバックオプションが続きます。クエリの一致は最初の好み(リストの最初の値)だけを考慮します。