首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >412在云数据存储中执行查询时没有找到匹配的索引。

412在云数据存储中执行查询时没有找到匹配的索引。
EN

Stack Overflow用户
提问于 2015-09-16 11:29:34
回答 2查看 729关注 0票数 0

我正在使用gcloud-python库从云数据存储查询数据。把我的片段想象成这样

代码语言:javascript
复制
from google.appengine.ext import ndb
from datetime import datetime
class Order(ndb.Model):
     order_name = ndb.StringProperty(required=True)
     date_created = ndb.DateTimeProperty(default= datetime.now())

#code for querying the cloud datastore
from gcloud.datastore.query import Query

date_start = datetime.combine(date(year=2015, month=08, day=01), time())
date_end = datetime.combine(date(year=2015, month=08, day=03), time())

query = Query(kind='Order')

query.add_filter('order_name', '=', 'grand-line-order')
query.add_filter('date_created', '<', date_end)
query.add_filter('date_created', '>', date_start)

iterator = query.fetch(limit=10)
records, more, cursor = iterator.next_page()
print records

对于上面我得到的片段

代码语言:javascript
复制
    File "/Users/sathyanarrayanan/Desktop/app/services/cdr_helper.py", line 528, in fetch_cdr
    records, more, cursor = iterator.next_page()
  File "/Users/sathyanarrayanan/Desktop/app/gcloud/datastore/query.py", line 388, in next_page
    transaction_id=transaction and transaction.id,
  File "/Users/sathyanarrayanan/Desktop/app/gcloud/datastore/connection.py", line 257, in run_query
    datastore_pb.RunQueryResponse)
  File "/Users/sathyanarrayanan/Desktop/app/gcloud/datastore/connection.py", line 108, in _rpc
    data=request_pb.SerializeToString())
  File "/Users/sathyanarrayanan/Desktop/app/gcloud/datastore/connection.py", line 85, in _request
    raise make_exception(headers, content, use_json=False)
PreconditionFailed: 412 no matching index found.

我的Index.yaml文件是这样的。

代码语言:javascript
复制
indexes:
- kind: Order
  ancestor: yes
  properties:
  - name: date_created

- kind: Order
  ancestor: yes
  properties:
  - name: date_created
    direction: desc

- kind: Order
  ancestor: yes
  properties:
  - name: order_name
    direction: asc
  - name: date_created
    direction: desc

- kind: Order
  ancestor: yes
  properties:
  - name: order_name
    direction: asc
  - name: date_created
    direction: asc

我做错了什么吗?请帮帮我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-06 02:09:48

使用祖先的所有索引:是的,所以祖先键应该添加到查询中。没有祖先,您的索引配置需要另一个带有“祖先:否”的索引。

代码语言:javascript
复制
- kind: Order
  ancestor: no
  properties:
    - name: order_name
      direction: asc
    - name: date_created
      direction: desc

注意:每个查询的特定索引

票数 1
EN

Stack Overflow用户

发布于 2015-09-18 15:54:49

索引配置文档表示索引配置应该在一个名为datastore-indexes.xml的XML文件中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32607351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档