Solr DIH: documents are not nested

39 Views Asked by At

I'm trying to import some data as nested documents.

I've tried to simplify my problem as much as possible.

Here my parent query:

SELECT 1 AS id,
       'xxx' AS col1,
       'yyy' AS col2
UNION
SELECT 2 AS id,
       'xxx' AS col1,
       'yyy' AS col2
UNION
SELECT 3 AS id,
       'xxx' AS col1,
       'yyy' AS col2

You can see data here:

1 | xxx | yyy
2 | xxx | yyy
3 | xxx | yyy

My child query is:

SELECT 1 AS id,
       1 AS rel_id,
       'aaa' AS col1,
       'bbb' AS col2
UNION
SELECT 2 AS id,
       1 AS rel_id,
       'aaa' AS col1,
       'bbb' AS col2
UNION
SELECT 3 AS id,
       2 AS rel_id,
       'aaa' AS col1,
       'bbb' AS col2
UNION
SELECT 4 AS id,
       3 AS rel_id,
       'aaa' AS col1,
       'bbb' AS col2

Data is:

1 | 1 | aaa | bbb
2 | 1 | aaa | bbb
3 | 2 | aaa | bbb
4 | 3 | aaa | bbb

I'm trying to nest using this DIH configuration:

<entity
    name="item"
    query="select 1 as id, 'xxx' as col1, 'yyy' as col2 union select 2 as id, 'xxx' as col1, 'yyy' as col2 union select 3 as id, 'xxx' as col1, 'yyy' as col2">

        <field column="id" name="id"/>

        <field column="col1" name="column1_s" />
        <field column="col2" name="column2_s" />

    <entity
        name="autor"
        child="true"
        query="select 1 as id, 1 as rel_id, 'aaa' as col1, 'bbb' as col2 union select 2 as id, 1 as rel_id, 'aaa' as col1, 'bbb' as col2 union select 3 as id, 2 as rel_id, 'aaa' as col1, 'bbb' as col2 union select 4 as id, 3 as rel_id, 'aaa' as col1, 'bbb' as col2"
        cacheKey="rel_id" cacheLookup="item.id" cacheImpl="SortedMapBackedCache">

            <field column="node_type" template="autor"/>

            <field column="alt_code" name="id" template="${autor.id}-${autor.rel_id}"/>

            <field column="col1" name="column1_s" />
            <field column="col2" name="column2_s" />


        </entity>
</entity>

However, they are not nested:

$ curl "http://localhost:8983/solr/arxius/select?q=*%3A*"
{
  "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
      "q": "*:*"
    }
  },
  "response": {
    "numFound": 7,
    "start": 0,
    "numFoundExact": true,
    "docs": [
      {
        "id": "1",
        "column2_s": "bbb",
        "column1_s": "aaa",
        "_version_": 1682901366056419300
      },
      {
        "id": "2",
        "column2_s": "bbb",
        "column1_s": "aaa",
        "_version_": 1682901366056419300
      },
      {
        "id": "1",
        "column2_s": "yyy",
        "column1_s": "xxx",
        "_version_": 1682901366056419300
      },
      {
        "id": "3",
        "column2_s": "bbb",
        "column1_s": "aaa",
        "_version_": 1682901366058516500
      },
      {
        "id": "2",
        "column2_s": "yyy",
        "column1_s": "xxx",
        "_version_": 1682901366058516500
      },
      {
        "id": "4",
        "column2_s": "bbb",
        "column1_s": "aaa",
        "_version_": 1682901366058516500
      },
      {
        "id": "3",
        "column2_s": "yyy",
        "column1_s": "xxx",
        "_version_": 1682901366058516500
      }
    ]
  }
}

As you can see, documents are not nested.

I've been struggling a lot over that issue.

I've tried to strightforward the problem.

I hope I've explained so well.

Please, any ideas?

0

There are 0 best solutions below