vuk*_*uky 6 solr geolocation geohashing dih
我现在拥有的是两个双重的filds:
<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"/>
Run Code Online (Sandbox Code Playgroud)
和我想要的:一个位置字段中的2个双精度值:
<field name="x_geo" type="location" indexed="true" stored="true" default="0.0,0.0"/>
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试了什么并且不起作用:
<copyField source="*_coordinate" dest="x_geo"/>
<copyField source="x_geo_str" dest="x_geo"/>
Run Code Online (Sandbox Code Playgroud)
有什么简单的解决 提前致谢!
好吧,你说得对@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;
}
]]>
Run Code Online (Sandbox Code Playgroud)
其将被称为:
<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>
Run Code Online (Sandbox Code Playgroud)
希望能帮助其他人解决此类问题。
| 归档时间: |
|
| 查看次数: |
4047 次 |
| 最近记录: |