2017-04-12 66 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

回答