2012-10-15 57 views
0

繼實體確定指標:Solr的 - 嵌套的實體需要返回兩個值

<entity name="mission" dataSource="mssqlDatasource" pk="id" 
     transformer="TemplateTransformer, ClobTransformer" 
     query="SELECT m.id, m.notes, m.missionFocus,m.start_time, 
         mar.id AS market, mar.name AS marketName 
       FROM mission m 
       INNER JOIN market mar ON m.market = mar.id"> 

    <field column="start_time" name="startTime" /> 
    <field column="market" name="market" /> 
    <field column="marketName" name="marketName" clob="true" /> 
    <field column="tableType" template="MISSION" /> 

    <entity name="comment" dataSource="mssqlDatasource" 
      transformer="ClobTransformer" 
      query="SELECT c.message 
        FROM comment c 
        WHERE c.source_id = '${mission.id}' AND c.source_type = 'mission'"> 
     <field name="commentMessage" column="message" clob="true" /> 
    </entity> 

    <entity name="activity" dataSource="mssqlDatasource" 
      query="SELECT a.notes 
        FROM activity a 
        WHERE a.mission = '${mission.id}'"> 
     <field name="activityNotes" column="notes" /> 
    </entity>   

    <entity name="location" dataSource="mssqlDatasource" 
       query="SELECT l.name 
         FROM location l 
         WHERE l.id = '${activity.id}'"> 
     <field name="locationName" column="name" />    
    </entity>   
</entity> 

你看我的問題是,嵌套的實體「活動」需要從嵌套返回2場即「activityNotes」和場實體'位置'即'locationName'。我怎麼能意識到這一點?這兩個領域應該索引..只有機會來凝聚這兩個字符串?

回答

0

你可以在ScriptUpdateProcessor做到這一點。你只需從DIH中的單獨字段中獲得它們,但是在UpdateProcessor中,你可以追加它們並將其插入到第三個字段中。在4.0中,你應該可以在沒有Java代碼的情況下使用ScriptUpdateProcessor