如何配置solr的data-config.xml来查询外键?

时间:2012-10-04 16:05:04

标签: solr

我正在关注从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外键?

1 个答案:

答案 0 :(得分:0)

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