0
我用下面的終點看到的是被cloudant選擇來獲取我的結果,其指數:Cloudant查詢選擇了錯誤的指標
https://mydb.cloudant.com/mlslistings-temp/_explain
這裏是一個例子查詢其錯誤的指數是選擇:
{
"sort": ["ListPrice"],
"limit":20,
"selector":{
"Street#":"1031",
"MLSStatus":{"$or":[{"$eq":"Active"}]},
"ListPrice":{"$gte":0},
"ParcelSizeAcres":{"$gte":0,"$lte":50}}
}
您在查詢中看到的所有字段都是基於json
的索引。 我有兩個關於索引選擇的問題:
- 無論我將哪個字段作爲排序字段自動選擇爲所選索引。它會很好,但大多數情況下,我的查詢將是
"ListPrice":{"$gte":0}
,因爲幾乎所有屬性的價格都大於0,所以最終會執行全表掃描。 - 如果我刪除查詢中的所有字段,並且在查詢中僅保留
Street#
和ParcelSizeAcres
,則選擇ParcelSizeAcres
作爲索引,但這是錯誤的。因爲當我使用Street#
運行查詢時,總共返回53個文檔,而ParcelSizeAcres
返回數百個。
這些指數的選擇似乎是逆着Cloudant's Explain Plans