Adakah benar jika indeks teks digunakan, indeks komposit tidak boleh digunakan?
Kerana saya menggunakan pernyataan pertanyaan berikut tetapi hanya melakukan pengindeksan teks:
db.tests.find({$text:{$search:'zhangshan'},'age':5,'city':'beijing'}
Melihat melalui explain, dia telah mengindeks teks tersebut. Kemudian tapis syarat lain daripada indeks ini!
Jadi apa yang perlu saya lakukan untuk mengindeks kesemuanya?
Saya terfikir untuk mencipta indeks teks untuk semua medan. Kerana jumlah data yang besar, saya belum mencubanya, saya ingin bertanya sama ada ini boleh dilaksanakan?
Terima kasih
Tambah explain()
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 50424,
"executionTimeMillis" : 510228,
"totalKeysExamined" : 83546,
"totalDocsExamined" : 167092,
"executionStages" : {
"stage" : "FETCH",
"filter" : {
"$and" : [
{
"age" : {
"$eq" : "5"
}
},
{
"city" : {
"$eq" : "beijing"
}
}
]
},
"nReturned" : 50424,
"executionTimeMillisEstimate" : 509543,
"works" : 167095,
"advanced" : 50424,
"needTime" : 116670,
"needYield" : 0,
"saveState" : 24418,
"restoreState" : 24418,
"isEOF" : 1,
"invalidates" : 0,
"docsExamined" : 83546,
"alreadyHasObj" : 83546,
"inputStage" : {
"stage" : "TEXT",
"nReturned" : 83546,
"executionTimeMillisEstimate" : 509362,
"works" : 167095,
"advanced" : 83546,
"needTime" : 83548,
"needYield" : 0,
"saveState" : 24418,
"restoreState" : 24418,
"isEOF" : 1,
"invalidates" : 0,
"indexPrefix" : {
},
"indexName" : "banner_text",
"parsedTextQuery" : {
"terms" : [
"ii"
],
"negatedTerms" : [ ],
"phrases" : [ ],
"negatedPhrases" : [ ]
},
"textIndexVersion" : 3,
"inputStage" : {
"stage" : "TEXT_MATCH",
"nReturned" : 83546,
"executionTimeMillisEstimate" : 509320,
"works" : 167095,
"advanced" : 83546,
"needTime" : 83548,
"needYield" : 0,
"saveState" : 24418,
"restoreState" : 24418,
"isEOF" : 1,
"invalidates" : 0,
"docsRejected" : 0,
"inputStage" : {
"stage" : "TEXT_OR",
"nReturned" : 83546,
"executionTimeMillisEstimate" : 509310,
"works" : 167095,
"advanced" : 83546,
"needTime" : 83548,
"needYield" : 0,
"saveState" : 24418,
"restoreState" : 24418,
"isEOF" : 1,
"invalidates" : 0,
"docsExamined" : 83546,
"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 83546,
"executionTimeMillisEstimate" : 1642,
"works" : 83547,
"advanced" : 83546,
"needTime" : 0,
"needYield" : 0,
"saveState" : 24418,
"restoreState" : 24418,
"isEOF" : 1,
"invalidates" : 0,
"keyPattern" : {
"_fts" : "text",
"_ftsx" : 1
},
"indexName" : "name_text",
"isMultiKey" : true,
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "backward",
"indexBounds" : {
},
"keysExamined" : 83546,
"seeks" : 1,
"dupsTested" : 83546,
"dupsDropped" : 0,
"seenInvalidated" : 0
}
}
Cuba jawab:
1 Pertama sekali, saya ingin melihat bagaimana indeks kompaun anda ditubuhkan secara khusus?
2. Hasil pelaksanaan dilaksanakan mengikut pelan pelaksanaan yang dipilih jika prestasi tidak memuaskan, anda boleh menggunakan petunjuk untuk menentukan indeks komposit yang anda buat.
Suka MongoDB!
Persidangan Kumpulan Pengguna Komuniti Cina MongoDB Beijing 2017 akan datang tidak lama lagi, 3 Jun 2017 13:00-18:00
Banyak perkongsian yang menarik! Berbaloi untuk mengambil bahagian!