Relationship with through tables

Each child node can have only one direct parent.

We can specify the relationship between a parent and child node using the relationship property.

[
    {
        "database": "book",
        "index": "book",
        "nodes": {
            "table": "book",
            "columns": [
                "isbn",
                "title",
                "description"
            ],
            "children": [
                {
                    "table": "author",
                    "columns": [
                        "id", "name"
                    ],
                    "relationship": {
                        "type": "one_to_many",
                        "variant": "object",
                        "through_tables": [
                            "book_author"
                        ]
                    }
                 }
            ]
        }
    }
]

To get this document structure in Elasticsearch/OpenSearch

[
  {
      "isbn": "9785811243570",
      "title": "Charlie and the chocolate factory",
      "author": [
          {
            "id": 1,
            "name": "Roald Dahl"
          }
       ]
  },
  {
      "isbn": "9788374950978",
      "title": "Kafka on the Shore",
      "author": [
          {
            "id": 2,
            "name": "Haruki Murakami"
          },
          {
            "id": 3,
            "name": "Philip Gabriel"
          }
       ]
  },
  {
      "isbn": "9781471331435",
      "title": "1984",
      "author": [
          {
            "id": 4,
            "name": "George Orwell"
          }
       ]
  }
]

Info

A relationship must include both a variant and a type attribute