code: @Procedure(mode = Mode.SCHEMA)
      @Description("apoc.index.addAllNodes('name',{label1:['prop1',...],...}, {options}) YIELD type, name, config - create a free text search index")
      public Stream<IndexStats> addAllNodes(@Name("index") String index, @Name("structure") Map<String, List<String>> structure, @Name(value = "options", defaultValue = "" ) Map<String,Object> options  ) {
          if (structure.isEmpty()) {
              throw new IllegalArgumentException("No structure given.");
          }
          return async(executor(), "Creating index '" + index + "'", result -> {
              populate(index(index, structure, options ), structure, result);
          });
      }
docs: Create (or recreate) a free text search index.
  <p>
  This will populate the index with all currently matching data. Updates will not be reflected in the index.
  In order to get updates into the index, the index has to be rebuilt.
  
  @param index     The name of the index to create.
  @param structure The labels of nodes to index, and the properties to index for each label.
  @return a stream containing a single element that describes the created index.