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

查询遍历一次的时间大概在1-2s
换一种正则方式:
test = "((财务)|(月结))"
test2 = "((?=.*记账)|(?=.*总账)|((?=.*会计凭证)|(?=.*凭证)))((?=.*取消))"
test3 = "((?=.*记账)|(?=.*凭证))"
resuq = {}
reid = []
starttime = datetime.datetime.now();
dd = mycol.find({ "string": re.compile("((财务)|(凭证)|(记账)|(取消)|(会计凭证)|(总账))")}).limit(
200)
查询结果

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