I would to perform full outer join  (emit documents from both left and
right and if there are common combine them) with solr streaming decorators
on two collections and "update" it to a new destination collection. I see
merge decorator option exists, but this seems to return two JSON document
for same id field from these two collections instead of one combined
document. The leftOuterJoin seems to do this combining correctly by
returning a document with matched "id" field into one document. But
leftOuterJoin is not exactly what i want to do, i want to full outer join.
Because merge returns two documents with same id, in the destination
collection, only second document exists, not both. Is there a way to
achieve what i am trying to do? Any help appreciated. Just to give more
details, here is something I am doing:

commit(
    destinationCollection ,
    batchSize=1,
   update(destinationCollection,
        batchSize=2,
        merge(search(col1,q=id:5,fl="id, collection1_field1 ", sort="duns
asc",qt="/export"),search(col2,q=id:5,fl="id, collection2_field2 ",
sort="id asc",qt="/export"),on="id asc")
))


Merge Response
{
"result-set": { "docs": [ { "id": "5", "collection1_field1": 64 }, {
"duns": "5", "collection2_field2": 0 }, { "EOF": true, "RESPONSE_TIME": 17
} ] } }

But i need just one document in the response with combined fields

Reply via email to