如题:
以下是我通过JAVA API进行模糊查询的方法,性能不是很好,查询全包含子集关系,用的是JAVA正则,能查询出结果,但性能不好,
我想确认的是,1、是否我的JAVA API方法,不对,2、如果API调用方法对的话,有没有性能更好的API方法,或思路,谢谢:
上代码:“
Sequoiadb sdb = getInstance();
// 获取所有 Collection 信息,并打印出来
db = sdb.getCollectionSpace("newMailMagicSpace");
cl = db.getCollection("newemailCollection");
DBCursor cursor;
BSONObject queryCondition = new BasicBSONObject();
String dnsquery="13590280350";
Pattern pattern = Pattern.compile("^.*"+dnsquery+".*$", Pattern.CASE_INSENSITIVE);
// Pattern pattern = Pattern.compile("^.A"+dnsquery+".*$", Pattern.CASE_INSENSITIVE);
queryCondition.put("emailName",pattern);
///^A/
// queryCondition.put("emailName", dnsquery);
// queryCondition = (BSONObject) JSON.parse("({age:{$ne:20}})");
// 查询所有记录,并把查询结果放在游标对象中
cursor = cl.query(queryCondition, null, null, null, 0, 20);//-1表示所有
long startTime=System.currentTimeMillis();
long emailCount=cl.getCount(queryCondition);
主要是count()方法性能慢,其它都还行