我面临的问题是创建正确的索引以通过我的Cloudant数据库进行查询。我使用的JSON数据结构类似于下面的内容。
{
"customer" : "123",
"time" : "2014-11-20"
}

我想根据时间对文档进行排序。我使用的索引查询是:
curl -X POST 'https://<user>:<pass>@<user>.cloudant.com/<DB-name>/_index' -d '
{
"index": {
"fields": [
"customer",
"time"
]
}
}'
&#13;
我正在使用的查询是:
curl -X POST 'https://<user>:<pass>@<user>.cloudant.com/<DB-name>/_find' -d '
{
"selector": {
"customer" : "123"
},
"sort": [
"time"
]
}'
&#13;
我得到的错误代码是&#34; no_usable_index&#34;。任何人都可以对此问题提供一些见解吗?
另外,如果时间格式如下,会有什么不同: &#34; 2014-11-20 11:50:00&#34;?基本上,我试图根据日期和时间进行排序。这可能吗?
答案 0 :(得分:3)
错误消息告诉您没有索引来执行排序,或者至少找不到索引。为了帮助它找到一个,按时分类,然后按时分类:
curl -X POST 'https://<user>:<pass>@<user>.cloudant.com/<DB-name>/_find' -d '
{
"selector": {
"customer" : "123"
},
"sort": [
"customer",
"time"
]
}'
此查询功能相同,但现在Cloudant Query将找到索引。
关于您关于其他时间格式的问题,时间字段仍将被视为字符串字段以进行排序。在您的情况下,这意味着您将获得预期的结果。