Ibm cloud Cloudant查询错误:尝试排序时缺少搜索索引

Ibm cloud Cloudant查询错误:尝试排序时缺少搜索索引,ibm-cloud,cloudant,mangodb,database,nosql,Ibm Cloud,Cloudant,Mangodb,Database,Nosql,我遵循了IBM关于如何运行查询以检索所选文档,并根据字段值对这些文档进行排序的说明。这些说明从页面下方大约2/3处的“使用两个字段运行查询”开始 我遇到了一个无法解决的错误 未知错误:mango_idx::{没有可用的索引,缺少排序索引} 查询是: { "selector": { "lastname": "Brown", "location": "New York City, NY" }, "fields": [ "firstname", "lastname", "locat

我遵循了IBM关于如何运行查询以检索所选文档,并根据字段值对这些文档进行排序的说明。这些说明从页面下方大约2/3处的“使用两个字段运行查询”开始

我遇到了一个无法解决的错误

未知错误:mango_idx::{没有可用的索引,缺少排序索引}

查询是:

{
"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语法中是否发生了本教程未更新的更改


我知道哪些建议的答案对我没有帮助。

这确实是该教程的一个问题。没有支持按lastname和firstname排序的索引。您可以创建另一个索引,如下所示:

{
  "index": {
    "fields": [
      "lastname",
      "firstname"
    ]
  },
  "type": "json"
}
{
  "selector": {
    "lastname": "Brown",
    "location": "New York City, NY"
  },
  "fields": [
    "firstname",
    "lastname",
    "location"
  ],
  "sort": [
    {
      "lastname": "asc"
    }
  ]
}
或者,您可以只按姓氏排序(去掉姓氏)。这将由原始索引支持。查询将如下所示:

{
  "index": {
    "fields": [
      "lastname",
      "firstname"
    ]
  },
  "type": "json"
}
{
  "selector": {
    "lastname": "Brown",
    "location": "New York City, NY"
  },
  "fields": [
    "firstname",
    "lastname",
    "location"
  ],
  "sort": [
    {
      "lastname": "asc"
    }
  ]
}

可能的重复我已经查看了那里的建议答案,这些答案对我没有帮助,我已经按照您的(IBM)教程了解了导致此问题的原因。我还在文档的github存储库中报告了这个问题:@Joeri教程将被更正。你应该很快就能在这里得到正式答复。非常感谢@markwatsonatx!我将用您的解决方案更新关于教程的github问题。