【问题标题】:Solr templated sql print nothing in dataimportSolr 模板化 sql 在数据导入中不打印任何内容
【发布时间】:2014-09-29 18:41:54
【问题描述】:

我有以下数据导入配置:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource driver="net.ucanaccess.jdbc.UcanaccessDriver" type="JdbcDataSource" url="jdbc:ucanaccess://C:/feqh/main.mdb;memory=false" />

<document>
    <entity name="Book" 
            query="select bkid AS id, bkid AS BookID,bk AS BookTitle, betaka AS BookInfo, cat as cat from 0bok">
                   <field column="id" name="id"/>
                   <field column="BookID" name="BookID"/>
                   <field column="BookTitle" name="BookTitle"/>
                   <field column="cat" name="cat"/>    
        <entity name="Category"
                query="select name as CatName, catord as CatWeight, Lvl as CatLevel from 0cat where id = ${Book.cat}">
                    <field column="CatName" name="CatName"/>
                    <field column="CatWeight" name="CatWeight"/>
                    <field column="CatLevel" name="CatLevel"/>
        </entity>

    </entity>
  </document>
</dataConfig>

由于日志中的以下错误,此数据导入失败:

无法执行查询:选择名称为 CatName,catord 为 CatWeight, Lvl as CatLevel from 0cat where id = Processing Document #1

当我用任何固定数字(例如 128)替换 ${Book.cat} 时,导入工作正常。

所以 ${Book.cat} 似乎没有打印出任何值。我从中导入数据的数据库是 MS Access 数据库 mdb,使用 版本 2.0.9。我在 Java8 上使用 Solr 4.9.0。我该如何解决这个问题?

【问题讨论】:

    标签: ucanaccess solr ucanaccess


    【解决方案1】:

    不知什么原因,我发现模板中的列名应该是大写的,所以${Book.cat}应该是${Book.CAT}我说未知是因为我确定该列 数据库中的名字写成小写cat

    【讨论】:

    • 见这里:stackoverflow.com/questions/22962667/…。如果 solr 在内部使用结果集元数据(以区分大小写的方式),这应该是您的疑问的答案。我想避免这类问题,但是在元数据中以不透明的方式(没有副作用)实现正确的案例是一项棘手的任务。它将在 ucanaccess 3.x.x 中完成。
    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 2019-05-26
    • 2021-02-13
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多