百萬的資料量,不算大,有個字段,值的長度 > 100,就是很長,包含中文、英文、幾乎所有的字元都存在。使用了全文索引,但是不是很理想:
1,搜尋特別慢,即使是使用索引了。
db.tests.find({'$text':{'$search':'test'}})
2,當搜尋存在''的時候,雖然會被轉換為'\',但是沒有任何反映,就好像根本沒有在運行一樣。重複退出,再開啟(指的是客戶的mongo),再查詢。就會把記憶體(12G,除去系統能用11G)跑滿,直接卡住。硬重啟。
db.tests.find({'$text':{'$search':'test.06'}}) #想要的。
但是通过web输入会变成
db.tests.find({'$text':{'$search':'test\1.06'}})
不知道這個樣的需求適合建立索引嗎?
謝謝
高洛峰2017-05-31 10:37:52
全文索引目前建議還是使用專門的搜尋引擎去做,MongoDB雖然支援全文索引,但是功能並不是很豐富,使用場景有局限性,很多情況下還存在問題,所以並不推薦使用。