Problem is I was manually exporting data from a database and converting it into sol'r docs and writing it to sol'r. No checks were performed if the converted doc had children or not so I can't really tell if I was doing it in this order or reversed (first the parent and child and then only the childless parent).

I'm not entirely sure that sol'r would append the child to the already existing parent but I can check that out.

As for the delete, I'm using deleteByQuery(_root_:parentID). This works fine because the id of the parent is placed in the _root_ of the children.

I wouldn't use the child query as that performs a ToBlockJoinQuery and I've had problems with that before (if you recall SOLR-6700 <https://issues.apache.org/jira/browse/SOLR-6700>)

I'll try your workaround suggestion and hopefully this will be fixed so I don't have to worry about the order I add the parents and children to sol'r :)

Thanks


On 12/10/2015 11:14 AM, Mikhail Khludnev wrote:
On Thu, Dec 10, 2015 at 12:38 PM, Bogdan Marinescu <
bogdan.marine...@awinta.com> wrote:

I'm interested in the workaround.

If you add the childless document first and afterwards the child, then
sol'r should append the child to the already existing document (or rather
delete the existing one as the new one has newer data).

I'd suggest to add empty child doc into every empty parent.

I've faced this problem where I was just deleting the parent by id and I
had lots of orphan documents just laying around.

deleteByQuery should be amended <uniqKey>:999 should be turned to
_root_:999, the you need to do instead of deleteById.
If you have deleteByQuery(Brand:Nike) (matching parents), it needs to be
turned to deleteByQuery(Brand:Nike {!child of=parent:true}Brand:Nike)


Reply via email to