MongoDB學習記錄(三)
索引(續)
補充
刪除索引:
語法:db.[collection].dropIndex("index name")
例子:刪除csbn表中,索引名爲"name_1"的索引
step1:查看索引csbn表中的索引:
db.csbn.getIndexes()
step2:刪除索引名爲"name_1":
db.csbn.dropIndex("name_1")
全文索引
創建全文索引:
註釋:以“name”字段爲索引創建全文索引,"text"爲固定值,不可改變。
語法:db.[collection].ensure({"key":"text"})
例子:以字段"name"爲索引創建全文索引
db.csbn.ensureIndex({name:"text"})
使用全文索引查詢:
下邊的圖片過程爲:
step1.查看csbn中的數據
step2.查看csbn中的索引
step3.創建一個全文索引
step4.查看創建全文索引後的索引
step5.通過全文索引的方式查詢數據
step1:查看csbn中的數據
step2:查看csbn中的索引
step3:創建一個全文索引
step4:查看創建全文索引後的索引
step5:通過全文索引的方式查詢數據
mongodb中幾種全文索引查詢的方式:
mongodb全文索引查詢的語法:
(一):
註釋:查找關鍵字“word”
語法:db.[collection].find($text:{$search:"word"})
例子:在csbn表中搜索關鍵字“sorry”
db.csbn.find($text:{$search:"sorry"})
(二):
註釋:搜索“word1”,“word2”關鍵字,“word1”,“word2”之間的空格表示或
語法:db.[collection].find($text:{$search:"word1 word2"})
例子:查詢csbn表中存在關鍵字“so”或“sorry”的數據
db.csbn.find($text:{$search:"so sorry"})
(三):
註釋:搜索存在關鍵字“word1”或“word2”,但不包含“word3”的數據
語法:db.[collection].find($text:{$search:"word1 word2 -word3"})
例子:查詢csbn表中存在關鍵字“so”或“sorry”,但包含“end”的數據
db.csbn.find($text:{$search:"so sorry -end"})
(四):
註釋:查詢包含“word1”和“word2”和“word3”。用引號表示 “與”
語法:db.[collection].find($text:{$search:"\"word\" \"word2\" \"word3\""})
例子:查詢csbn表中包含“best”和“friend”和“forever”的數據
db.[collection].find($text:{$search:"\"best\" \"friend\" \"forever\""})
相似度全文檢索
釋義:“相似度”顧名思義會檢索出與檢索條件相似的結果。類似與我們在百度
搜索的時候,會搜索出好多與查詢條件相似的結果。使用
{score:{$meta:"scoreText"}}表示相似度查詢
語法:db.[collection].find({$text:{$search:"word1 word2"}},{score:{$meta:"textScore"}})
例子:查詢與"aa"或"bb"相似的數據,查詢出的數據的score即爲相似度
db.csbn.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}})
按相似度排序查詢:
語法:db.[collection].find({$text:{$search:"word1 word2"}},{score:{$mate:"textScore"}}).sort({score:{$mate:"textScore"}})
例子:按相似度字段爲關鍵詞降序
db.csbn.find({$text:{$search:"aa xx"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}})
菜鳥一枚,大神勿噴。