mongo(3)

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"}})

菜鳥一枚,大神勿噴。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章