I am using Solr 7.2.1. 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="id
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 }, { "id":
"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