【发布时间】:2017-11-30 13:48:30
【问题描述】:
我们有一个具有这种结构的表:
{_id:15_0, createdAt: 1/1/1, task_id:[16_0, 17_0, 18_0], table:”details”, a:b, c: d, more}
我们使用
创建索引 {
"index": {},
"name": "paginationQueryIndex",
"type": "text"
}
它是自动创建的
{
"ddoc": "_design/28e8db44a5a0862xxx",
"name": "paginationQueryIndex",
"type": "text",
"def": {
"default_analyzer": "keyword",
"default_field": {
},
"selector": {
},
"fields": [
],
"index_array_lengths": true
}
}
我们正在使用以下查询
{
"selector": {
"createdAt": { "$gt": 0 },
"task_id": { "$in": [ "18_0" ] },
"table": "details"
},
"sort": [ { "createdAt": "desc" } ],
"limit”: 20
}
第一次需要 700-800 毫秒,之后会减少到 500-600 毫秒
为什么第一次需要更长的时间?
有什么方法可以加快查询速度?
如果类型是“文本”,有什么方法可以为特定字段添加索引? (而不是索引这些记录中的所有字段)
【问题讨论】: