【问题标题】:SOLR DataImportHandler does not evaluate expressionsSOLR DataImportHandler 不计算表达式
【发布时间】:2011-01-07 10:06:07
【问题描述】:

我正在尝试使用 SOLR DataImportHandler 来提供数据。当我只从根实体导入一个字段时,配置简单明了,一切正常。

但是当我尝试从嵌套实体中导入字段时,它不起作用,我真的很困惑和卡住。

这是我的数据配置中的相关 sn-p:

<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} 没有被评估,但我不知道为什么。

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

【问题讨论】:

    标签: apache solr dataimporthandler dih


    【解决方案1】:

    哈,像往常一样 - 在花了整个下午试图找到解决方案之后,当我用尽所有想法并向社区提出问题时......我突然自己找到了解决方案:)

    关键是区分大小写 - 如果您正确查看详细的 XML 输出,则出于某种原因。所以我尝试使用表达式 ${a.B_ID} 并且它有效!

    也许大写仅适用于 Oracle JDBC 驱动程序。

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 2012-06-21
      • 2011-09-05
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-24
      相关资源
      最近更新 更多