我正在尝试使用SOLR DataImportHandler来提供数据。当我从根实体只导入一个字段时,配置简单明了,一切正常。
但是当我尝试从嵌套实体导入字段时,它不起作用,我真的很困惑并且卡住了。
以下是我的dataconfig的相关摘录:
<dataConfig>
<dataSource ... />
<document>
<entity name="a" query="select id, b_id from a" pk="id">
<entity name="b" query="select title from b where id ='${a.b_id}'">
<field column="title" name="title" />
</entity>
</entity>
</document>
</dataConfig>
当我尝试使用已打开详细信息的DIH开发控制台调试导入时,我可以看到类似的内容:
...
<lst name="document#3">
<str>----------- row #1-------------</str>
<str name="ID">PST_210-SI.10 </str>
<str name="B_ID">6c2r3490seeqvb86pgb4c4trf9</str>
<str>---------------------------------------------</str>
−
<lst name="entity:b">
<str name="query">select title from b where id =''</str>
<str name="query">select title from b where id =''</str>
<str name="query">select title from b where id =''</str>
<str name="time-taken">0:0:0.1</str>
<str name="time-taken">0:0:0.1</str>
<str name="time-taken">0:0:0.1</str>
</lst>
</lst>
我认为有趣的一点是实体 b 中的3个查询,其中id字段为空。在我看来,像 $ {a.b_id} 没有评估,但我找不到原因。
有人可以帮忙吗? 提前谢谢。
答案 0 :(得分:2)
问题是区分大小写 - 如果您正确查看详细的XML输出,则出于某种原因 。所以我尝试使用表达式 $ {a.B_ID} ,它的确有效!
也许大写只能用于Oracle JDBC驱动程序。