2011-11-15 12 views
6

Lo que tenemos ahora es las dos filds dobles:En DIH Solr importar dos doble en un solo lugar

<field name="x_geo_x_coordinate" type="double" indexed="true" stored="true" default="0"/> 
<field name="x_geo_y_coordinate" type="double" indexed="true" stored="true" default="0"/> 

y lo que queremos: el 2 doble valor en el campo de un solo lugar:

<field name="x_geo" type="location" indexed="true" stored="true" default="0.0,0.0"/> 

Lo que intenté hasta ahora y no funciona:

<copyField source="*_coordinate" dest="x_geo"/> 
<copyField source="x_geo_str" dest="x_geo"/> 

¿Alguna solución simple? ¡Gracias por adelantado!

Respuesta

3

Bueno, tu donde estabas @ nikhil500. ScriptTransformer es una respuesta, (no estoy seguro si esto es lo más simple). El dataconfig.xml contiene una función java:

<script><![CDATA[ 
      function puttwodouble(row)  { 
       var attrVal1 = row.get("GEO_X_WERT"); 
       var attrVal2 = row.get("GEO_Y_WERT"); 
       var attrVal = attrVal1 + "," + attrVal2; 
       var arr = new java.util.ArrayList() 
       arr.add(attrVal1); 
       arr.add(attrVal2); 
       row.put("store",attrVal); 
       row.put("x_geo_str",arr); 
       return row; 
      } 
]]> 

générale será llamado:

<entity name="inner_geo_str" transformer="script:puttwodouble" 
      query="select GEO_X_WERT, GEO_Y_WERT from FIRMA_GEODATEN where GEO_FIR_NR ='${outer.FIR_NR}' and geo_x_wert != 'NF'">      
        <field column="GEO_X_WERT" name="x_geo_x_s"/> 
        <field column="GEO_Y_WERT" name="x_geo_y_s"/>      
      </entity> 

la esperanza de que ayudará a otros a resolver este tipo de problema.

2

Uso TemplateTransformer en DIH (datos-config.xml):

<entity name="p" transformer="TemplateTransformer" ...... 
<field column="location" template="${p.location_0_coordinate},${p.location_1_coordinate}" /> 
2

Además de la respuesta de PaulG, puede utilizar location_rpt en Solr 4, que soporta múltiples valores, pero no tiene que ser declarada como MultiValue.

<field name="region" type="location_rpt" indexed="true" stored="true" /> 
Cuestiones relacionadas