Упорядоченный список в painless

Я понял. Цифры взяты для упрощения восприятия и реализации. Так то это обычные UUID-ы.

В объщем случае да. Но, тут возможен вариант с флагами листья/почки

Да, это уникальная последовательность во всём наборе документов.

В этом случае я не понимаю проблему. Если меня интересуют все мои документы я просто ищу по UUID корневой директории, если меня интересует поддиректория и все вложенные в нее документы - я просто ищу по UUID этой поддиректории. Я не понимаю, зачем мне при поиске или агрегации нужно знать всю иерархию.

Вы опять какими-то загадками говорите.

Что бы при поиске в поддиректории выдавать в агрегации только статистику относительно этой поддиректории, а не всей иерархии от корня.

Вот пример, я не вижу, где он выдает статистику всей иерархии от корня.

DELETE test

PUT test
{
  "mappings": {
    "properties": {
      "path": {
        "type": "keyword"
      },
      "size": {
        "type": "long"
      }
    }
  }
}


POST /test/_bulk?refresh
{"index":{"_id":"I am root"}}
{"path": ["1"], "size": 1}
{"index":{"_id":"/a"}}
{"path": ["1", "2"], "size": 1}
{"index":{"_id":"/a/b"}}
{"path": ["1", "2"], "size": 1}
{"index":{"_id":"/a/b/c"}}
{"path": ["1", "2", "3"], "size": 1}
{"index":{"_id":"/a/b/d"}}
{"path": ["1", "2", "4"], "size": 1}
{"index":{"_id":"/a/e/f"}}
{"path": ["1", "5", "6"], "size": 1}

POST test/_search
{
  "size": 0, 
  "query": {
    "match": {
      "path": "1"
    }
  },
  "aggs": {
    "stats_for_root": {
      "sum": {
        "field": "size"
      }
    }
  }
}

POST test/_search
{
  "size": 0, 
  "query": {
    "match": {
      "path": "2"
    }
  },
  "aggs": {
    "stats_for_a_b": {
      "sum": {
        "field": "size"
      }
    }
  }
}


POST test/_search
{
  "size": 0, 
  "query": {
    "match": {
      "path": "3"
    }
  },
  "aggs": {
    "stats_for_a_b_c": {
      "sum": {
        "field": "size"
      }
    }
  }
}

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.