我正在尝试索引包含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>
我的正则表达式是错还是其他?
答案 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>