我的问题持续了几天,我无法解决。
我的数据库中有一个简单的文档,如下所示:
{
"_id": "asd123",
"_rev": "revidasd123",
"type": "CUSTOM_TYPE",
"position": 8,
"title": "Short custom title"
}
当我尝试按位置进行排序时,即使我为此字段创建了索引,我也总会得到同样的错误:
错误:no_usable_index。原因:此类别不存在索引,请尝试按排序字段进行索引。
这是索引:
{
"type": "json",
"def": {
"fields": [
{
"position": "asc"
}
]
}
}
这是我的查询导致此错误:
{
"selector": {
"type": "CUSTOM_TYPE",
"_id":{
"$gt": null
}
},
"fields": [
"_id",
"type",
"position"
],
"sort": [
{
"_id": "asc"
},
{
"position": "asc"
}
]
}
结果:此类别不存在索引,请尝试按排序字段建立索引。
请帮助!提前致谢
答案 0 :(得分:3)
如果您想按位置排序,请尝试以下查询:
{
"selector": {
"type": "CUSTOM_TYPE",
"position": {"$gte": 0}
},
"fields": [
"_id",
"type",
"position"
],
"sort": [
{
"position": "asc"
}
]
}
position
字段必须是选择器的一部分。我将其设置为匹配任何> = 0的位置,因此它应匹配all,除非它为null。
此外,您按_id
然后position
排序。这会使position
排序变得毫无意义。我从排序中删除了_id
字段。