0

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

我已经声明了多值字段的 solr 模式。

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

我的数据库配置:

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

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

4

1 回答 1

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>
于 2013-06-11T09:54:29.000 回答