** UPDATE **Google Cloud Datastore runQuery powrocie 412 „nie znaleziono zgodnego index”
Dzięki Alfred Fullera dla wskazując, że trzeba utworzyć ręcznie indeks dla tego zapytania.
Niestety, korzystając z interfejsu API JSON, z aplikacji .NET, nie wydaje się, aby był to oficjalnie obsługiwany sposób. W rzeczywistości nie wydaje się, aby w ogóle było to możliwe z aplikacji spoza App Engine, co jest dziwne, ponieważ interfejs API Cloud Datastore został zaprojektowany, aby umożliwić dostęp do Datastore poza App Engine.
Najbliższym hackem, jaki mogłem znaleźć, było POST the index definition using RPC do http://appengine.google.com/api/datastore/index/add. Czy ktoś może mi podać surową specyfikację tego, jak to zrobić dokładnie (np. Parametry URL, jak dokładnie powinno wyglądać ciało itp.), Być może używając Fiddlera do sprawdzenia połączenia wykonanego przez appcfg.cmd?
** oryginalne pytanie **
Według docs „kwerenda może łączyć równości (równe) filtry dla różnych właściwości, wraz z jednym lub więcej filtrów nierówności na jednym własności”.
Jednak ta kwerenda nie powiedzie się:
{
"query": {
"kinds": [
{
"name": "CodeProse.Pogo.Tests.TestPerson"
}
],
"filter": {
"compositeFilter": {
"operator": "and",
"filters": [
{
"propertyFilter": {
"operator": "equal",
"property": {
"name": "DepartmentCode"
},
"value": {
"integerValue": "123"
}
}
},
{
"propertyFilter": {
"operator": "greaterThan",
"property": {
"name": "HourlyRate"
},
"value": {
"doubleValue": 50
}
}
},
{
"propertyFilter": {
"operator": "lessThan",
"property": {
"name": "HourlyRate"
},
"value": {
"doubleValue": 100
}
}
}
]
}
}
}
}
z następującą odpowiedź: "Nr Index dopasowania znalezionego"
{
"error": {
"errors": [
{
"domain": "global",
"reason": "FAILED_PRECONDITION",
"message": "no matching index found.",
"locationType": "header",
"location": "If-Match"
}
],
"code": 412,
"message": "no matching index found."
}
}
Dzięki Alfred! Zobacz moją aktualizację pytania. Niestety używam interfejsu API JSON i nie używam SDK App Engine (co pozwoliłoby mi w łatwy sposób dołączyć plik def do indeksu). –