インデックス回復の優先順位

未割り当てのシャードは、可能な限り優先順位の順に回復されます。インデックスは以下のように優先順位の順にソートされます:

  • オプションの index.priority 設定(高いものが低いものの前)
  • インデックス作成日(新しいものが古いものの前)
  • インデックス名(高いものが低いものの前)

これは、デフォルトでは新しいインデックスが古いインデックスの前に回復されることを意味します。

インデックスの優先順位をカスタマイズするには、インデックスごとの動的に更新可能な index.priority 設定を使用します。例えば:

Python

  1. resp = client.indices.create(
  2. index="index_1",
  3. )
  4. print(resp)
  5. resp1 = client.indices.create(
  6. index="index_2",
  7. )
  8. print(resp1)
  9. resp2 = client.indices.create(
  10. index="index_3",
  11. settings={
  12. "index.priority": 10
  13. },
  14. )
  15. print(resp2)
  16. resp3 = client.indices.create(
  17. index="index_4",
  18. settings={
  19. "index.priority": 5
  20. },
  21. )
  22. print(resp3)

Ruby

  1. response = client.indices.create(
  2. index: 'index_1'
  3. )
  4. puts response
  5. response = client.indices.create(
  6. index: 'index_2'
  7. )
  8. puts response
  9. response = client.indices.create(
  10. index: 'index_3',
  11. body: {
  12. settings: {
  13. 'index.priority' => 10
  14. }
  15. }
  16. )
  17. puts response
  18. response = client.indices.create(
  19. index: 'index_4',
  20. body: {
  21. settings: {
  22. 'index.priority' => 5
  23. }
  24. }
  25. )
  26. puts response

Js

  1. const response = await client.indices.create({
  2. index: "index_1",
  3. });
  4. console.log(response);
  5. const response1 = await client.indices.create({
  6. index: "index_2",
  7. });
  8. console.log(response1);
  9. const response2 = await client.indices.create({
  10. index: "index_3",
  11. settings: {
  12. "index.priority": 10,
  13. },
  14. });
  15. console.log(response2);
  16. const response3 = await client.indices.create({
  17. index: "index_4",
  18. settings: {
  19. "index.priority": 5,
  20. },
  21. });
  22. console.log(response3);

コンソール

  1. PUT index_1
  2. PUT index_2
  3. PUT index_3
  4. {
  5. "settings": {
  6. "index.priority": 10
  7. }
  8. }
  9. PUT index_4
  10. {
  11. "settings": {
  12. "index.priority": 5
  13. }
  14. }

上記の例では:

  • index_3 は最も高い index.priority を持っているため、最初に回復されます。
  • index_4 は次に高い優先順位を持っているため、次に回復されます。
  • index_2 は最近作成されたため、次に回復されます。
  • index_1 は最後に回復されます。

この設定は整数を受け入れ、インデックス設定の更新APIを使用してライブインデックスで更新できます:

Python

  1. resp = client.indices.put_settings(
  2. index="index_4",
  3. settings={
  4. "index.priority": 1
  5. },
  6. )
  7. print(resp)

Ruby

  1. response = client.indices.put_settings(
  2. index: 'index_4',
  3. body: {
  4. 'index.priority' => 1
  5. }
  6. )
  7. puts response

Js

  1. const response = await client.indices.putSettings({
  2. index: "index_4",
  3. settings: {
  4. "index.priority": 1,
  5. },
  6. });
  7. console.log(response);

コンソール

  1. PUT index_4/_settings
  2. {
  3. "index.priority": 1
  4. }