2017-04-12 79 views
0

我有一个包含数百万条记录的集合。我试图在称为术语的字段上实现一个自动完成功能,并将其分解为一组称为单词的单词。我的查询速度很慢,因为我对索引缺少一些信息。有人可以帮忙吗?查询的Mongo索引

我有以下查询:

db.vx.find({ 
    semantic: "product", 
    concept: true, 
    active: true, 
    $and: [ { words: { $regex: "^doxycycl.*" } } ] 
}).sort({ length: 1 }).limit(100).explain() 

解释输出表示,没有索引使用,即使我有以下指标:

{ 
    "v" : 1, 
    "key" : { 
     "words" : 1, 
     "active" : 1, 
     "concept" : 1, 
     "semantic" : 1 
    }, 
    "name" : "words_1_active_1_concept_1_semantic_1", 
    "ns" : "mydatabase.vx" 
} 
+0

- 我不明白你的字段是如何称呼'term'的,如果你说和查询一个叫'words'的字段。 – alfredopacino

+0

单词是一个数组,包含字段中的每个单词,因为术语是句子 – Mika

+0

所以没有'term'字段。你的文档有一个字符串“单词”的数组,这是我的权利? – alfredopacino

回答