我正在关注从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
外键?
答案 0 :(得分:0)
确保使用continent_id写入$ {product.CONTINENT_ID},其大小写与表名完全相同。 Solr并不总是忽略这种情况(有时它会这样做,有时它不会),所以请使用完全一个以防万一。