0

我正在关注有关从solr导入数据的文档。我可以连接到本地数据库,但配置文件无法读取外键。我的桌子是:

product
------------
id
name
continent_id


continent
------------
id
name

data-config.xml的是:

<dataConfig>
  <dataSource type="JdbcDataSource" driver="org.postgresql.Driver" url="jdbc:postgresql://localhost/my_db" user="postgres" password="postgres" readOnly="true" />
  <document name="products">
    <entity name="product" query="select * from product">
      <field column="ID" name="id" />
      <field column="NAME" name="name" />

      <entity name="continent" query="select NAME from continent where id='${product.CONTINENT_ID}'">
        <field column="name" name="continent" />
      </entity>            
    </entity>
  </document>
</dataConfig>

我看到的错误是:

SEVERE: Exception while processing: product document : SolrInputDocument[{id=id(1.0)={1}, name=name(1.0)={Fancy Pants}}]:org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select NAME from continent where id='' Processing Document # 1

它连接到数据库很好,但无法读取外键product.CONTINENT_ID。我是否需要以不同的方式配置上面的 xml 来读取和索引continent外键?

4

1 回答 1

0

确保 ${product.CONTINENT_ID} 用continent_id 写入,与表名的大小写完全相同。Solr 并不总是忽略这种情况(有时会,有时不会),因此请使用确切的情况以防万一。

于 2012-10-05T07:28:21.353 回答