我正在使用pouchdb模块,当我搜索数据库时,我收到警告。警告信息是这样的。 警告:"未找到匹配的索引,创建索引以优化查询时间"
为什么我会收到这样的警告?如果有人知道原因和解决方案你能告诉我吗?
var querySentenceDoc = {
_id: '_design/query_sentence',
views: {
by_query_id: {
map: function (doc, ctx) {
ctx.emit(doc.query_id, doc.sentnece_id);
}.toString()
}
}
};
_this.query_sentence.put(querySentenceDoc).then(function () {
_this.query_sentence.query('query_sentence/by_query_id', { stale: 'update_after' }).then(function () {
if (proceedCb) {
proceedCb();
}
return;
});
}).catch(function (err) {
console.log('Sentences views maybe a 409, because it already exists?', err);
});
showSentenceIds: function (ids) {
var param = { keys: ids, limit: 15, include_docs: true};
return this.query_sentence.query('query_sentence/by_query_id', param);
},
models.showSentenceIds(ids).then(function (_s_ids) {
sentenceIds = _s_ids;
callback(null, 0);
});

答案 0 :(得分:1)
您的设计文档中有一个拼写错误:
ctx.emit(doc.query_id, doc.sentnece_id);
所以索引可能没有正确构建。尝试将sentnece_id更改为sentence_id。
另外,当你在id上查询时,也许你可以使用alldocs代替。请参阅有关何时不使用Map / reduce的段落: https://pouchdb.com/2014/05/01/secondary-indexes-have-landed-in-pouchdb.html