我在使用 splitBy 功能从管道分隔的数据源填充多值字段时遇到问题。我的实现似乎部分适用于其中一个领域,而不适用于另一个领域。下面是我的实现示例。
我有一个包含以下数据的数据库视图:
recordId 重新列出 dbaName
1 PA21|MD29 香港龙|去皮的苹果
我的配置:
<dataConfig>
<dataSource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@myserver:1521:XE" user="MyUser" password="MyPassword"/>
<document>
<entity name="mentity" query="select * from MySampleView" transformer="RegexTransformer" >
<field sourceColName="relist" column="relist" splitBy="\|" />
<field sourceColName="dbaName" column="dbaName" splitBy="\|" />
<field column="recordId" name="recordId" />
</entity>
</document>
</dataConfig>
我的 schema.xml 片段:
<fields>
<field name="relist" type="string" indexed="true" stored="true" multiValued="true" />
<field name="dbaName" type="string" indexed="true" stored="true" multiValued="true" />
<field name="recordId" type="string" indexed="true" stored="true" multiValued="false" />
</fields>
<uniqueKey>recordId</uniqueKey>
我的期望是,当数据被拆分和存储时,文档看起来像这样:
"docs": [
{
"relist": [
"PA21",
"MD29"
],
"recordId": "1",
"dbaName": [
"The Hong Kong Dragon",
"The Peeled Apple"
]
}
]
但是,这就是我得到的:
"docs": [
{
"relist": [
"PA21",
"MD29",
"PA21|MD29"
],
"recordId": "1",
"dbaName": [
"The Hong Kong Dragon|The Peeled Apple"
]
}
]
我的问题:
- relist 正在拆分,但它还包括列表中的原始分隔值
- dbaName 没有被拆分
任何帮助,将不胜感激。
谢谢