数据存储索引异常,虽然我已经为相同的定义了索引

datastore index exception though I have defined index for the same

我有一个实体王review如下属性和值

Review {
 merchantId : 'X',
 appId : 'Y',
 productId : 'Z',
 reviewId : '12345',
 timeStamp : '1493482784728',
 viewtimestamp : '148834892374'
}

我定义的索引如下

<datastore-index kind="review" ancestor="false" source="manual">
        <property name="merchantId" direction="asc"/>
        <property name="appId" direction="asc"/>
        <property name="productId" direction="asc"/>
        <property name="reviewId" direction="asc"/>
        <property name="timeStamp" direction="desc"/>
        <property name="viewtimestamp" direction="desc"/>
    </datastore-index>

而我的查询如下

SELECT reviewId FROM review WHERE merchantId = X AND appId = Y AND productId = Z;

当我执行此查询时,我得到以下索引建议

<datastore-index kind="review" ancestor="false" source="manual">
    <property name="appId" direction="asc"/>
    <property name="merchantId" direction="asc"/>
    <property name="productId" direction="asc"/>
    <property name="reviewId" direction="asc"/>
</datastore-index>

我在这里遗漏了什么吗?订单如何决定?请帮助

索引不是这样的。如果系统找不到您查询的精确索引,则不会 return.

拥有更复杂的索引并尝试使用该索引为您的查询提供服务意味着数据存储将需要进行一些计算而不是直接查找。数据存储不会那样做。

如果你想让你的查询完全通过,你需要它们的索引,否则它不会 运行。唯一的区别是 zigzag merge join algorithm 如果您没有所有索引,它可以帮助您查询。但是你不能只依赖它,因为它不能服务于一切,它需要部分索引