4

もう一度..「ブログ」と「コメント」の2つのテーブルがあります。ブログには n 個のコメントを含めることができます (ブログ --1:n-- コメント)。最新まで、次の選択を使用してデータをsolrインデックスに挿入します。

    <entity name="blog" dataSource="mssqlDatasource" pk="id"
        transformer="ClobTransformer"
        query="SELECT b.id, b.market, b.title AS blogTitle, b.message AS            
                blogMessage, c.message AS commentMessage, c.secondColumn 
                FROM blog b LEFT JOIN comment c ON b.id = c.source_id
                AND c.source_type = 'blog'">
        <field column="blogMessage" name="blogMessage" clob="true" />
        <field column="commentMessage" name="commentMessage" clob="true" />
    </entity>

インデックスの結果は次のようになります。

    <doc>
     <str name="id">1</str>
     <str name="market">12</str>
     <str name="title">blog of title 1</str>
     <str name="blogMessage">message of blog 1</str>
     <str name="commentMessage">message of comment</str>
     <str name="scondColumn">Im the second column from comment</str>
    </doc>

    <doc>
     <str name="id">1</str>
     <str name="market">12</str>
     <str name="title">blog of title 1</str>
     <str name="blogMessage">message of blog 1</str>
     <str name="commentMessage">message of comment - Im the second comment</str>
     <str name="scondColumn">Im the second column from comment</str>       
    </doc>

コメントが違うだけで同じブログのインデックス データが多すぎるので、これはばかげていると言えます。次のように「コメント」を「サブエンティティ」として設定することは可能ですか:

    <entity name="blog" dataSource="mssqlDatasource" pk="id"
        transformer="ClobTransformer"
        query="SELECT b.id, b.market, b.title AS blogTitle, b.message AS            
                blogMessage
                FROM blog b">
         <field column="blogMessage" name="blogMessage" clob="true" />

          <entity name="comment" dataSource="mssqlDatasource" pk="id"
             transformer="ClobTransformer"
             query="SELECT c.message as commentMessage, c.secondColumn
                FROM comment c
                WHERE c.source_id = ${blog.id}">
            <field column="commentMessage" name="commentMessage" clob="true" />              
          </entity>
    </entity>

それは可能ですか?結果はどのようになりますか (月曜日までテストできません)?

4

1 に答える 1