搜尋

首頁  >  問答  >  主體

MongoDB 模糊查詢效率太差,如何快速加速?

在70W的數據中,執行 'name': /Mamacitas / 需要17.358767秒才完成
數據內容例:

{
  "Attitude_low": NumberInt(0),
  "Comments": "i",
  "file": [
    "mamacitas-7-scene3.avi",
    "mamacitas-7-scene4.avi",
    "mamacitas-7-scene5.avi",
    "mamacitas-7-scene2.avi",
    "mamacitas-7-scene1.avi",
    "14968frontbig.jpg",
    "[000397].gif",
    "mamacitas-7-bonus-scene1.avi",
    "14968backbig.jpg"
  ],
  "Announce": "http://exodus.desync.com/announce",
  "View": NumberInt(0),
  "Hash": "9E3842903C56E8BBC0C7AF7A0A8636590491923C",
  "name": "Mamacitas 7[SILVERDUST]",
  "Encoding": "!",
  "EntryTime": 1403169286.9712,
  "Attitude_top": NumberInt(0),
  "CreatedBy": "ruTorrent (PHP Class - Adrien Gibrat)",
  "CreationDate": NumberInt(1365851919)
}

關於索引部分:

請問我該如何提高匹配速度?

阿神阿神2797 天前782

全部回覆(3)我來回復

  • 怪我咯

    怪我咯2017-04-24 09:11:39

    hash 類型的索引在用模糊查詢時是用不上的,的確要依賴搜尋引擎類別的東西專門建分詞後的索引

    一個是可以採用elastic search之類的東西,專門搭一個

    也可以考慮採用一個分詞的函式庫把你的欄位分好詞,然後再用mongodb的專門弄個分詞的collection,可以用mongodb的預設索引機制

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-24 09:11:39

    可以嘗試下 MongoDB Text Indexes,看起來你只是要匹配某個完整單詞,跟這種索引的應用場景是一樣的。

    回覆
    0
  • PHPz

    PHPz2017-04-24 09:11:39

    可以用Lucence/Sphinx結合MongoDb做搜尋查詢,Mongodb查詢效率確實比較低

    回覆
    0
  • 取消回覆