我正在尝试使用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>

我认为有趣的观点是实体中的3个查询 b, ,ID字段为空的地方。在我看来,就像 $ {a.b_id} 没有评估,但我找不到原因。

有人可以帮忙吗?提前致谢。

有帮助吗?

解决方案

哈,像往常一样 - 在整个下午试图找出解决方案之后,当我用完所有想法并向社区问一个问题时。我突然发现了解决方案:)

捕获是案例敏感性 - 如果您正确地看着详细的XML输出,则出于某种原因有 . 。所以我尝试使用表达 $ {a.b_id} 它有效!

也许高层只能针对Oracle JDBC驱动程序特定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top