Mongodb正则查询速度慢的问题(正则用不上索引)

2019-09-26  本文已影响0人  a9b854aded01

运行环境:Python pymongo
查询例子:/search?type=9&name=总账如何取消凭证记账&productionLine=.*
经过分词要模糊查询一些东西
正则查询变量((?=.记账)|(?=.总账)|((?=.会计凭证)|(?=.凭证)))((?=.*取消))
查询结果:

image.png

查询遍历一次的时间大概在1-2s

换一种正则方式:

 test = "((财务)|(月结))"
    test2 = "((?=.*记账)|(?=.*总账)|((?=.*会计凭证)|(?=.*凭证)))((?=.*取消))"
    test3 = "((?=.*记账)|(?=.*凭证))"
    resuq = {}
    reid = []
    starttime = datetime.datetime.now();
    dd = mycol.find({ "string": re.compile("((财务)|(凭证)|(记账)|(取消)|(会计凭证)|(总账))")}).limit(
        200)

查询结果


image.png

总结:mongodb的正则查询需要开头明确的查询条件(细节还没有研究,具体可以参考其他博客),否则无法用上索引。

上一篇 下一篇

猜你喜欢

热点阅读