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

2017-03-03 16:17:41 +08:00
 97world

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

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

5630 次点击
所在节点    MongoDB
2 条回复
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
2017-03-03 17:58:22 +08:00
正则会全表扫描,另外 mongodb 的全文索引貌似不支持中文,你只能借助全文搜索引擎处理了,处理好分词就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344665

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX