搜索

首页  >  问答  >  正文

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 天前783

全部回复(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
  • 取消回复