Cloudant query error: missing search index when trying to sort
Cloudant query error: missing search index when trying to sort
我已经按照 IBM 的 Cloudant tutorial 了解如何 运行 查询来检索选定的文档,并根据字段的值对这些文档进行排序。说明从页面下方的 "Running a query with two fields".
开始。
我遇到一个错误,我找不到解决方案。
Unknown Error: mango_idx :: {no_usable_index,missing_sort_index}
查询是:
{
"selector": {
"lastname": "Brown",
"location": "New York City, NY"
},
"fields": [
"firstname",
"lastname",
"location"
],
"sort": [
{
"lastname": "asc"
},
{
"firstname": "asc"
}
]
}
我在设计文档中添加了一个查询索引,如下所示:
{
"index": {
"fields": [
"lastname",
"location",
"age"
]
},
"name": "query-index",
"type": "json"
}
文档本身是以下的变体:
{
"firstname": "John",
"lastname": "Brown",
"age": 21,
"location": "New York City, NY",
"_id": "doc2"
}
我是不是做错了什么?教程未更新的 Cloudant 语法是否发生了某些变化?
我知道 其中建议的答案对我没有帮助。
看起来这确实是该教程的一个问题。没有索引支持按姓氏和名字排序。您可以像这样创建另一个索引:
{
"index": {
"fields": [
"lastname",
"firstname"
]
},
"type": "json"
}
或者,您可以仅按姓氏排序(去掉名字)。这将得到原始索引的支持。查询将如下所示:
{
"selector": {
"lastname": "Brown",
"location": "New York City, NY"
},
"fields": [
"firstname",
"lastname",
"location"
],
"sort": [
{
"lastname": "asc"
}
]
}
我已经按照 IBM 的 Cloudant tutorial 了解如何 运行 查询来检索选定的文档,并根据字段的值对这些文档进行排序。说明从页面下方的 "Running a query with two fields".
开始。我遇到一个错误,我找不到解决方案。
Unknown Error: mango_idx :: {no_usable_index,missing_sort_index}
查询是:
{
"selector": {
"lastname": "Brown",
"location": "New York City, NY"
},
"fields": [
"firstname",
"lastname",
"location"
],
"sort": [
{
"lastname": "asc"
},
{
"firstname": "asc"
}
]
}
我在设计文档中添加了一个查询索引,如下所示:
{
"index": {
"fields": [
"lastname",
"location",
"age"
]
},
"name": "query-index",
"type": "json"
}
文档本身是以下的变体:
{
"firstname": "John",
"lastname": "Brown",
"age": 21,
"location": "New York City, NY",
"_id": "doc2"
}
我是不是做错了什么?教程未更新的 Cloudant 语法是否发生了某些变化?
我知道
看起来这确实是该教程的一个问题。没有索引支持按姓氏和名字排序。您可以像这样创建另一个索引:
{
"index": {
"fields": [
"lastname",
"firstname"
]
},
"type": "json"
}
或者,您可以仅按姓氏排序(去掉名字)。这将得到原始索引的支持。查询将如下所示:
{
"selector": {
"lastname": "Brown",
"location": "New York City, NY"
},
"fields": [
"firstname",
"lastname",
"location"
],
"sort": [
{
"lastname": "asc"
}
]
}