Solr DIHでテーブル結合して、取込みしてみる

### 前提

[前回投稿](https://qiita.com/yasuokatou/items/971dd93dece4f636f45c)からの発展型ですので、DIHに関する設定等は省略する。
なので、データはPostgreSQLのチュートリアルにある[DVDレンタルデータ](http://www.postgresqltutorial.com/postgresql-sample-database/)を使用する。
結合は、フィルムテーブルにカテゴリテーブルを結合する。但し、チュートリアルのにER図より、フィルム・カテゴリーテーブルを介して結合する必要がある。

### SQLで書くと

```sql
select f.film_id id, ct.name category_name, f.title, f.description
from film f
inner join film_category fc
  on fc.film_id = f.film_id
inner join category ct
  on ct.category_id = fc.category_id
```
となる取込みは、

### db-data-configでは

```XML
        <entity name="film" query="select * from film" >
          <field column="film_id" name="id" />
          <field column="title" name="title" />
          <field column="description" name="description" />
          <entity name="film_category" query="select category_id from film_category where film_id='${film.film_id}'"  >
            <entity name="category" query="select name from category where category_id='${film_category.category_id}'" >
              <field column="name" name="category_name" />
            </entity>
          </entity>
        </entity>
```

となるみたいです。

### データフィールドの追加

今回追加したデータフィールドは、「category_name」だけだったと思います。（作業メモを取ってなく、後から思い出して書きました）
注意：[前回の投稿](https://qiita.com/yasuokatou/items/971dd93dece4f636f45c)で「city」フィールドを追加しましたが、今回未使用となり、「city」を削除しておかないと取込みでエラーになります。

### 取込み

取込みは、[前回の投稿](https://qiita.com/yasuokatou/items/971dd93dece4f636f45c)と同じです。

### クエリーで確認

qに「category_name:family && description:student」と入力し、「Execute Query」ボタンをクリックする。
検索結果は、以下の通り。

```JSON
{
  "responseHeader":{
    "status":0,
    "QTime":4,
    "params":{
      "q":"category_name:family && description:student",
      "_":"1562462403529"}},
  "response":{"numFound":9,"start":0,"docs":[
      {
        "description":"A Emotional Documentary of a Student And a Girl who must Build a Boat in Nigeria",
        "title":["Blanket Beverly"],
        "id":"80",
        "category_name":"Family",
        "_version_":1638303411597213696},
      {
        "description":"A Astounding Reflection of a Explorer And a Dentist who must Pursue a Student in Nigeria",
        "title":["Jedi Beneath"],
        "id":"479",
        "category_name":"Family",
        "_version_":1638303422835851264},
      {
        "description":"A Taut Story of a Pioneer And a Squirrel who must Battle a Student in Soviet Georgia",
        "title":["House Dynamite"],
        "id":"437",
        "category_name":"Family",
        "_version_":1638303421771546624},
      {
        "description":"A Insightful Display of a Database Administrator And a Student who must Build a Hunter in Berlin",
        "title":["Movie Shakespeare"],
        "id":"603",
        "category_name":"Family",
        "_version_":1638303426342289408},
      {
        "description":"A Thrilling Epistle of a Boy And a Boat who must Find a Student in Soviet Georgia",
        "title":["Pittsburgh Hunchback"],
        "id":"682",
        "category_name":"Family",
        "_version_":1638303428390158336},
      {
        "description":"A Fateful Tale of a Database Administrator And a Squirrel who must Discover a Student in Soviet Georgia",
        "title":["Virtual Spoilers"],
        "id":"946",
        "category_name":"Family",
        "_version_":1638303435516280832},
      {
        "description":"A Awe-Inspiring Tale of a Girl And a Madman who must Outgun a Student in A Shark Tank",
        "title":["Hocus Frida"],
        "id":"419",
        "category_name":"Family",
        "_version_":1638303421262987264},
      {
        "description":"A Fanciful Character Study of a Student And a Explorer who must Succumb a Composer in An Abandoned Mine Shaft",
        "title":["Killer Innocent"],
        "id":"498",
        "category_name":"Family",
        "_version_":1638303423327633408},
      {
        "description":"A Thrilling Panorama of a Pastry Chef And a Secret Agent who must Overcome a Student in A Manhattan Penthouse",
        "title":["Spartacus Cheaper"],
        "id":"824",
        "category_name":"Family",
        "_version_":1638303432338046976}]
  }}
```



### 考えたこと

今回は、リファレンスガイドの内容を試してたかったのでentityのネストになりましたが、entityの「query」属性にjoinを書いたらダメかな！？