ich den folgenden Endpunkt verwendet, um zu sehen, welcher Index von cloudant gewählt wird meine Ergebnisse zu holen:Cloudant Abfrage den falschen Index Auswahl
https://mydb.cloudant.com/mlslistings-temp/_explain
und hier ist ein Beispiel Abfrage, für die falschen Index zu sein, ist gewählt:
{
"sort": ["ListPrice"],
"limit":20,
"selector":{
"Street#":"1031",
"MLSStatus":{"$or":[{"$eq":"Active"}]},
"ListPrice":{"$gte":0},
"ParcelSizeAcres":{"$gte":0,"$lte":50}}
}
Alle Felder, die Sie in der Abfrage zu sehen sind json
basierte Indizes. Ich habe zwei Fragen in Bezug auf Indexauswahl:
- Unabhängig davon, welches Feld ich als Sortierfeld setzte automatisch als gewählten Index ausgewählt wird. Es wäre in Ordnung gewesen, aber meine Abfrage wird
"ListPrice":{"$gte":0}
sein, die endet, indem Sie den gesamten Tabellenscan durchführen, da fast alle Eigenschaften mehr als 0 Preis haben. - Wenn ich alle Felder in der Abfrage herausnehmen und nur
Street#
undParcelSizeAcres
in der Abfrage verlassen, wirdParcelSizeAcres
als Index ausgewählt, aber das ist falsch. Da, wenn ich die Abfrage mitStreet#
ausführen insgesamt 53 Dokumente zurückgegeben werden, währendParcelSizeAcres
Hunderte zurückgibt. Alle Ihre Indizes halten ein einzelnes Feld
scheinen diesen Index Auswahl gegen Cloudant's Explain Plans