В Solr Dih импортировать два двухместных в одном месте - PullRequest
6 голосов
/ 15 ноября 2011

Теперь у меня есть два двойных поля:

<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"/>

и что я хочу: двойное значение 2 в одном поле местоположения:

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

То, что я пробовал до сих пори не работает:

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

Любое простое решение?Заранее спасибо!

Ответы [ 4 ]

3 голосов
/ 16 ноября 2011

Ну, ты где прав @ nikhil500.ScriptTransformer - один из ответов (я не уверен, что это самый простой вариант).Файл dataconfig.xml содержит функцию 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;
            }
]]>

, которая будет вызываться:

 <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>

Надеюсь, что это поможет другим решить эту проблему.

2 голосов
/ 30 мая 2013

В дополнение к ответу PaulG, вы можете использовать location_rpt в Solr 4, который поддерживает множественные значения, но не должен объявляться как MultiValue.

<field name="region" type="location_rpt" indexed="true" stored="true" />
2 голосов
/ 18 сентября 2012

Использовать TemplateTransformer в DIH (data-config.xml):

<entity name="p" transformer="TemplateTransformer" ......
<field column="location" template="${p.location_0_coordinate},${p.location_1_coordinate}" />
0 голосов
/ 15 ноября 2011

Вы можете использовать ScriptTransformer для создания x_geo поля.

...