docs: public CharTrieIndex index(int maxLevels, int minWeight) {
      
      AtomicInteger numberSplit = new AtomicInteger(0);
      int depth = -1;
      do {
        numberSplit.set(0);
        if (0 == ++depth) {
          numberSplit.incrementAndGet();
          root().split();
        }
        else {
          root().streamDecendents(depth).forEach(node -> {
            TrieNode godparent = node.godparent();
            if (node.getDepth() < maxLevels) {
              if (null == godparent || godparent.getCursorCount() > minWeight) {
                if (node.getChar() != NodewalkerCodec.END_OF_STRING || node.getDepth() == 0) {
                  ((IndexNode) node).split();
                  numberSplit.incrementAndGet();
                }
              }
            }
          });
        }
      } while (numberSplit.get() > 0);
      return this;
    }