在 solr dih 中,在一个位置导入两个 double

发布于 2024-12-15 18:07:31 字数 565 浏览 0 评论 0原文

我现在拥有的是两个双字段:

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

任何简单的解决方案?提前致谢!

What I have now is the two double 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"/>

and what I want: the 2 double value in one location field:

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

What I tried so far and does't work:

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

Any simple solution? Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

林空鹿饮溪 2024-12-22 18:07:32

好吧,你说得对@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>

希望能帮助其他人解决此类问题。

Well, you where right @nikhil500. ScriptTransformer is one answer, (I'm not sure if this is the simpliest). The dataconfig.xml contains a java function:

<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;
            }
]]>

whitch will be called:

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

Hope that will help others to solve this kind of problem.

謸气贵蔟 2024-12-22 18:07:32

在 DIH (data-config.xml) 中使用 TemplateTransformer:

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

Use TemplateTransformer in DIH (data-config.xml):

<entity name="p" transformer="TemplateTransformer" ......
<field column="location" template="${p.location_0_coordinate},${p.location_1_coordinate}" />
逆流 2024-12-22 18:07:32

除了PaulG的回答之外,您还可以在Solr 4中使用 location_rpt ,它支持多值,但不支持不需要声明为 MultiValue。

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

In addition to PaulG's answer , you can use location_rpt in Solr 4, which supports multi values, but doesn't need to be declared as MultiValue.

<field name="region" type="location_rpt" indexed="true" stored="true" />
那伤。 2024-12-22 18:07:32

您可以使用 ScriptTransformer 创建 x_geo 字段。

You can use ScriptTransformer to create x_geo field.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文