Couchbase无法看到二级索引

时间:2018-12-06 07:18:03

标签: database couchbase

我在默认存储分区上创建了一个索引:

CREATE INDEX queryIndex on default (customerId, orderState, locationId, timestamps.lastUpdatedDateTime) USING GSI; 

这是我的查询:

SELECT orderId FROM default WHERE orderState="Open" and DATE_DIFF_STR(CLOCK_LOCAL(),MILLIS_TO_STR(timestamps.lastUpdatedDateTime),'day') > 10;

由于某些原因,Couchbase无法找到索引。它要求我创建一个。有人可以告诉我我在做什么错吗?

1 个答案:

答案 0 :(得分:2)

系统无法将那个索引用于该查询,因为WHERE子句中的字段不是索引中的前导字段。另外,如果您希望将此索引用作覆盖索引(意味着不需要额外提取整个文档),则您在查询中提到的所有字段都必须包含在索引中。

orderState="open"谓词看起来像是起点。将orderState移到索引中列出的字段的开头。