I think there's a little bug in the search.put() of SDK 1.7.6. Maybe it's the desired behaviour but please correct me if I'm doing something wrong here:
The following seem to fail (where it shouldn't, I think) running SDK 1.7.6: doc1 = search.Document(fields=[... valid search fields ...]) # i.e. no doc_id provided doc2 = search.Document(fields=[... valid search fields ...]) # i.e. no doc_id provided myidx = search.Index(name='myindex') myidx.put([doc1, doc2]) >>> ValueError: Different documents with the same ID found in the same call to Index.put() The following patch would fix the error but I'm not sure whether it breaks something else: --- /a/google/appengine/api/search/search.py 2013-03-15 17:48:00.000000000 +0100 +++ /b/google/appengine/api/search/search.py 2013-03-21 10:42:03.000000000 +0100 @@ -2441,14 +2441,15 @@ seen_docs = {} for document in docs: doc_id = document.doc_id - if doc_id in seen_docs: - if document != seen_docs[doc_id]: - raise ValueError('Different documents with the same ID found in the ' - 'same call to Index.put()') + if doc_id: + if doc_id in seen_docs: + if document != seen_docs[doc_id]: + raise ValueError('Different documents with the same ID found in the ' + 'same call to Index.put()') - continue - seen_docs[doc_id] = document + continue + seen_docs[doc_id] = document doc_pb = params.add_document() _CopyDocumentToProtocolBuffer(document, doc_pb) @@ -2460,7 +2461,7 @@ results = self._NewPutResultList(response) - if response.status_size() != len(seen_docs): + if response.status_size() != len(docs): raise PutError('did not index requested number of documents', results) I posted it on the issue tracker too: https://code.google.com/p/googleappengine/issues/detail?id=8553 -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at http://groups.google.com/group/google-appengine?hl=en. For more options, visit https://groups.google.com/groups/opt_out.