使用数据导入处理程序索引postgrel数组整数

时间:2013-06-10 20:19:36

标签: regex solr

我正在尝试索引包含int数组的数据库。

我在solr架构上声明了多值fied。

我使用split选项来分隔每个值,但不可能使用正则表达式来消除数组末尾的{和}。

我的db-config:

   <entity name="hut" transformer="RegexTransformer" query="select activities ,id from     app_huts_archives where is_latest_version = true and activities is not null">
    <field column="activities" regex="(\w*)" replaceWith="" splitBy=","  name="activity"  />

我当前的查询结果:

 <arr name="activity">
      **<str>{1</str>**
      <int>2</int>
      <int>3</int>
      <int>4</int>
      **<str>6}</str>**
    </arr>

我的正则表达式是错还是其他?

1 个答案:

答案 0 :(得分:0)

没有检查正则表达式解决方案。

替代解决方案是使用ScriptTransformer来拆分,替换和生成多值字段

<dataConfig>
        <script><![CDATA[
                function retrieveRelativePath(row)    {
                    var activities= row.get('activities');
                    // replace and split activities and add as multivalued field
                    return row;
                }
        ]]></script>
        <document>
                <entity name="e" pk="id" transformer="script:retrieveRelativePath" query="select * from X">
                ....
                </entity>
        </document>
</dataConfig>