V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
97world
V2EX  ›  MongoDB

MongoDB 用正则来模糊查询的性能好像很不理想,除了用 Elasticsearch 这些搜索引擎工具来间接解决,有没有直接点的方法?

  •  
  •   97world · 2017-03-03 16:17:41 +08:00 · 5634 次点击
    这是一个创建于 2856 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我这边有一 Collection ,有 2000W+的数据,业务需求需要根据某一个或者多个 field 来模糊查询,这种情况下查询的速度真的很慢,全 collection 查询完的时间要 40s 以上. 强制命中索引的方法似乎可以改善,但是依然在 30s 以上. 有其他方法可以提升查询的效率吗?

    之前总结了一些解决方案在http://dtoweb.com/post/poor-performance-for-mongodb-fuzzy-query.html, 但实际上都没能最终解决问题.

    2 条回复    2017-03-03 17:58:22 +08:00
    zhuangzhuang1988
        1
    zhuangzhuang1988  
       2017-03-03 16:50:50 +08:00
    预处理一下 ....
    参考这个
    a fat cat sat on a mat - it ate a fat rats ==> 'ate':9 'cat':3 'fat':2,11 'mat':7 'rat':12 'sat':4

    http://www.postgres.cn/docs/9.3/textsearch-controls.html#TEXTSEARCH-PARSING-DOCUMENTS
    ixiaohei
        2
    ixiaohei  
       2017-03-03 17:58:22 +08:00
    正则会全表扫描,另外 mongodb 的全文索引貌似不支持中文,你只能借助全文搜索引擎处理了,处理好分词就行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:48 · PVG 04:48 · LAX 12:48 · JFK 15:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.