日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
MongoDB全文檢索
從 2.4 版本開(kāi)始,MongoDB 開(kāi)始支持全文檢索功能,全文檢索就是對(duì)文本中的每個(gè)詞建立索引,指明該詞在文章中出現(xiàn)的次數(shù)和位置,當(dāng)用戶(hù)查詢(xún)時(shí),檢索程序就根據(jù)事先建立的索引進(jìn)行查找,并將查找的結(jié)果反饋給用戶(hù),整個(gè)過(guò)程類(lèi)似于通過(guò)字典中的檢索字表查字的過(guò)程。

目前,MongoDB 支持大約 15 種語(yǔ)言的全文索引,例如 danish、dutch、english、finnish、french、german、hungarian、italian、norwegian、portuguese、romanian、russian、spanish、swedish、turkish 等。

啟用全文檢索

最初,全文檢索是一個(gè)實(shí)驗(yàn)性功能,但 MongoDB 在 2.6 版本以后默認(rèn)開(kāi)啟了此功能,如果您使用 2.6 之前的版本,則需要使用以下代碼來(lái)啟用全文檢索:

>db.adminCommand({setParameter:true, textSearchEnabled:true})

或者使用命令:

mongod --setParameter textSearchEnabled=true

創(chuàng)建全文索引

假如我們?cè)?posts 集合中插入以下文檔:

> db.posts.insert([
... {
...    "post_text": "enjoy the mongodb articles on bianchengbang",
...    "tags": ["mongodb", "bianchengbang"]
... },
... {
...     "post_text" : "writing tutorials on mongodb",
...     "tags" : [ "mongodb", "tutorial" ]
... }
... ])
BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 2,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})

若要在 post_text 字段上創(chuàng)建全文索引,以便我們可以直接搜索字段中的內(nèi)容,可以像下面這樣:

> db.posts.createIndex({post_text:"text"})
{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 1,
        "numIndexesAfter" : 2,
        "ok" : 1
}

使用全文索引

使用全文索引可以提高搜索效率,前面我們已經(jīng)在 post_text 字段上創(chuàng)建了全文索引,下面通過(guò)一個(gè)示例來(lái)演示全文索引的使用。

【示例】搜索 post_text 字段中包含關(guān)鍵詞“bianchengbang”的所有文檔:

> db.posts.find({$text:{$search:"bianchengbang"}}).pretty()
{
        "_id" : ObjectId("6041dfc3835e4aa734b591df"),
        "post_text" : "enjoy the mongodb articles on bianchengbang",
        "tags" : [
                "mongodb",
                "bianchengbang"
        ]
}

如果您使用的是舊版本的 MongoDB,則可以使用以下命令:

>db.posts.runCommand("text",{search:"bianchengbang"})

刪除全文索引

要?jiǎng)h除現(xiàn)有的全文索引,首先我們需要使用 getIndex() 方法來(lái)查看索引的名稱(chēng),如下所示:

> db.posts.getIndexes()
[
        {
                "v" : 2,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "bianchengbang.posts"
        },
        {
                "v" : 2,
                "key" : {
                        "_fts" : "text",
                        "_ftsx" : 1
                },
                "name" : "post_text_text",
                "ns" : "bianchengbang.posts",
                "weights" : {
                        "post_text" : 1
                },
                "default_language" : "english",
                "language_override" : "language",
                "textIndexVersion" : 3
        }
]

通過(guò)運(yùn)行結(jié)果可以看出,我們前面創(chuàng)建的索引的名稱(chēng)為“post_text_text”,接下來(lái)就可以使用 dropIndex() 方法來(lái)刪除指定的索引了,如下所示:

> db.posts.dropIndex("post_text_text")
{ "nIndexesWas" : 2, "ok" : 1 }

當(dāng)前名稱(chēng):MongoDB全文檢索
當(dāng)前路徑:http://m.5511xx.com/article/codsphj.html