You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Mark juszczec <ma...@gmail.com> on 2011/07/05 18:55:15 UTC

primary key made of multiple fields from multiple source tables

Hello all

I'm using Solr 3.2 and am trying to index a document whose primary key is
built from multiple columns selected from an Oracle DB.

I'm getting the following error:

java.lang.IllegalArgumentException: deltaQuery has no column to resolve to
declared primary key pk='ordersorderline_id'
        at
org.apache.solr.handler.dataimport.DocBuilder.findMatchingPkColumn(DocBuilder.java:840)
~[apache-solr-dataimporthandler-3.2.0.jar:3.2.0 1129474 - rmuir - 2011-05-30
23:09:08]
        at
org.apache.solr.handler.dataimport.DocBuilder.collectDelta(DocBuilder.java:891)
~[apache-solr-dataimporthandler-3.2.0.jar:3.2.0 1129474 - rmuir - 2011-05-30
23:09:08]
        at
org.apache.solr.handler.dataimport.DocBuilder.doDelta(DocBuilder.java:284)
~[apache-solr-dataimporthandler-3.2.0.jar:3.2.0 1129474 - rmuir - 2011-05-30
23:09:08]
        at
org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:178)
~[apache-solr-dataimporthandler-3.2.0.jar:3.2.0 1129474 - rmuir - 2011-05-30
23:09:08]
        at
org.apache.solr.handler.dataimport.DataImporter.doDeltaImport(DataImporter.java:374)
[apache-solr-dataimporthandler-3.2.0.jar:3.2.0 1129474 - rmuir - 2011-05-30
23:09:08]
        at
org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:413)
[apache-solr-dataimporthandler-3.2.0.jar:3.2.0 1129474 - rmuir - 2011-05-30
23:09:08]
        at
org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:392)
[apache-solr-dataimporthandler-3.2.0.jar:3.2.0 1129474 - rmuir - 2011-05-30
23:09:08]


The deltaQuery is:

select orders.order_id || orders.order_booked_ind ||
order_line.order_line_id as ordersorderline_id, orders.order_id,
orders.order_booked_ind, order_line.order_line_id, orders.order_dt,
orders.cancel_dt, orders.account_manager_id, orders.of_header_id,
orders.order_status_lov_id, orders.order_type_id,
orders.approved_discount_pct, orders.campaign_nm,
orders.approved_by_cd,orders.advertiser_id, orders.agency_id,
order_line.accounting_comments_desc
from orders, order_line
where order_line.order_id = orders.order_id and order_line.order_booked_ind
= orders.order_booked_ind

I've just seen in the Solr Wiki Task List at
http://wiki.apache.org/solr/TaskList?highlight=%28composite%29 a Big Idea
for The Future is:

"support for *composite* keys ... either with some explicit change to the
<uniqueKey> declaration or perhaps just copyField with some hidden magic
that concats the resulting terms into a single key Term"

Does this prohibit my creating the key with the select as above?

Mark