_tier field

複数のインデックスにまたがるクエリを実行する際、特定のデータティア(data_hotdata_warmdata_cold、またはdata_frozen)に保持されているインデックスをターゲットにすることが望ましい場合があります。_tierフィールドは、ドキュメントがインデックスされたインデックスのtier_preference設定に基づいて一致させることを可能にします。好ましい値は特定のクエリでアクセス可能です:

Python

  1. resp = client.index(
  2. index="index_1",
  3. id="1",
  4. document={
  5. "text": "Document in index 1"
  6. },
  7. )
  8. print(resp)
  9. resp1 = client.index(
  10. index="index_2",
  11. id="2",
  12. refresh=True,
  13. document={
  14. "text": "Document in index 2"
  15. },
  16. )
  17. print(resp1)
  18. resp2 = client.search(
  19. index="index_1,index_2",
  20. query={
  21. "terms": {
  22. "_tier": [
  23. "data_hot",
  24. "data_warm"
  25. ]
  26. }
  27. },
  28. )
  29. print(resp2)

Ruby

  1. response = client.index(
  2. index: 'index_1',
  3. id: 1,
  4. body: {
  5. text: 'Document in index 1'
  6. }
  7. )
  8. puts response
  9. response = client.index(
  10. index: 'index_2',
  11. id: 2,
  12. refresh: true,
  13. body: {
  14. text: 'Document in index 2'
  15. }
  16. )
  17. puts response
  18. response = client.search(
  19. index: 'index_1,index_2',
  20. body: {
  21. query: {
  22. terms: {
  23. _tier: [
  24. 'data_hot',
  25. 'data_warm'
  26. ]
  27. }
  28. }
  29. }
  30. )
  31. puts response

Js

  1. const response = await client.index({
  2. index: "index_1",
  3. id: 1,
  4. document: {
  5. text: "Document in index 1",
  6. },
  7. });
  8. console.log(response);
  9. const response1 = await client.index({
  10. index: "index_2",
  11. id: 2,
  12. refresh: "true",
  13. document: {
  14. text: "Document in index 2",
  15. },
  16. });
  17. console.log(response1);
  18. const response2 = await client.search({
  19. index: "index_1,index_2",
  20. query: {
  21. terms: {
  22. _tier: ["data_hot", "data_warm"],
  23. },
  24. },
  25. });
  26. console.log(response2);

Console

  1. PUT index_1/_doc/1
  2. {
  3. "text": "Document in index 1"
  4. }
  5. PUT index_2/_doc/2?refresh=true
  6. {
  7. "text": "Document in index 2"
  8. }
  9. GET index_1,index_2/_search
  10. {
  11. "query": {
  12. "terms": {
  13. "_tier": ["data_hot", "data_warm"]
  14. }
  15. }
  16. }
_tierフィールドに対するクエリ

通常、クエリはtermsクエリを使用して関心のあるティアをリストしますが、_tierフィールドをtermクエリに書き換えられた任意のクエリで使用できます。たとえば、matchquery_stringtermterms、またはsimple_query_stringクエリ、さらにprefixおよびwildcardクエリでも使用できます。ただし、regexpおよびfuzzyクエリはサポートされていません。

インデックスのtier_preference設定は、好ましい順序でティア名のカンマ区切りリストです。つまり、インデックスをホストするための好ましいティアが最初にリストされ、その後に多くのフォールバックオプションが続きます。クエリの一致は最初の好み(リストの最初の値)だけを考慮します。