2017-03-03 1 views
1

J'utilise l'API de recherche (https://cloud.google.com/appengine/docs/standard/python/search/) sur l'environnement standard Python de Google App Engine.API Appengine Search - InvalidRequest

Dans mon application, j'ai plusieurs index de recherche et les interroger avec la pagination du curseur (pagination de pagination ne peut pas retourner plus de 1000 résultats) https://cloud.google.com/appengine/docs/standard/python/search/cursorclass

Parfois, je reçois au hasard exception suivante:

InvalidRequest : Échec de l'exécution de la requête de recherche "< search query" "

sans autres détails. Si je l'obtiens au milieu d'une requête, il va se reproduire éternellement avec un tel curseur.

  1. Ensemble d'est immuable entre les requêtes (pas d'articles sont ajoutés ou supprimés)
  2. Première page de requête est toujours ok (exception se produit uniquement si je fais une recherche avec le curseur)
  3. Je ne suis pas en utilisant aucun tri
  4. sont Curseurs exactement le même que reçu par requête précédente et ne sont pas corrompues entre les demandes

Toute idée comment résoudre ce problème?

liés:

https://issuetracker.google.com/issues/35898069

https://issuetracker.google.com/issues/35895008

https://groups.google.com/forum/#!topic/google-appengine/tBHkZLeYTOI

What does this error message mean in appengine?

Répondre

1

Enfin, nous avons pu savoir ce qui était à l'origine des erreurs aléatoires.

  1. Faire la première demande "A = 1 ET B = 2" et recevoir < curseur>
  2. Faire seconde demande avec < curseur> "A = 1 ET B = 2" - fonctionne OK
  3. Marque deuxième demande avec < curseur> "B = 2 AND A = 1" - même requête, mais l'ordre des paramètres ne correspond pas à la requête d'origine - InvalidRequest sans explication.