CouchDB 如何使用单个索引分别对多个字段进行排序

ki1q1bka  于 2022-12-09  发布在  CouchDB
关注(0)|答案(1)|浏览(149)

我试图在一个索引中声明多个字段,如下所示,并试图只对单个字段进行排序。可能吗?
有没有什么方法可以使用一个单一的合并字段索引,我可以对个别字段动态排序。

{
    "index": {
        "fields": ["name","createdDate","updatedDate"]
    },
    "name" : "multi-filter",
    "ddoc" : "MultiFilter"
    "type" : "json"
}

之后,我可以对相同的序列和列表应用排序,如下所示

{
    "selector": {"name": "Robert De Niro"},
    "sort": [{"name": "asc"}, {"createdDate": "asc"},{"updatedDate": "asc"}]
}

但是如果我改变了顺序或者想对单个字段使用筛选/排序,比如

{
    "selector": {"name": "Robert De Niro"},
    "sort": [{"name": "asc"}]
}

它给出了一个错误,说,我的动机是使用单一索引,但排序个别字段。它看起来像是一个限制的CouchDB,我需要创建三个独立的索引相同,使其工作,仍然希望最好的选择

{"error":"no_usable_index","reason":"No index exists for this sort, try indexing by the sort fields."}
toe95027

toe950271#

我在这里找到了这个答案:"Unknown Error: mango_idx :: {no_usable_index,missing_sort_index}"}
您可以定义一个索引,仅使用good字段,例如:

{
    "index": {
        "fields": ["name"]
    },
    "name" : "name_sort",
    "type" : "json"
}

相关问题