protected void prepare(Mailbox mbx, ZimbraQueryResultsImpl res, MailboxIndex mbidx, int chunkSize) throws ServiceException, IOException
protected void prepare(Mailbox mbx, ZimbraQueryResultsImpl res, MailboxIndex mbidx, SearchParams params, int chunkSize) throws ServiceException, IOException
    protected void prepare(Mailbox mbx, ZimbraQueryResultsImpl res, MailboxIndex mbidx, int chunkSize) throws ServiceException, IOException    {        assert(!mHaveRunSearch);        if (mDBOp == null) {            // wrap ourselves in a DBQueryOperation, since we're eventually going to need to go to the DB            mDBOp = DBQueryOperation.Create();            mDBOp.addLuceneOp(this);            mDBOp.prepare(mbx, res, mbidx, chunkSize); // will call back into this function again!        } else {            this.setupResults(mbx, res);            try {                mSearcher = mbidx.getCountedIndexSearcher();                mSort = mbidx.getSort(res.getSortBy());//              runSearch();            } catch (IOException e) {                e.printStackTrace();                if (mSearcher != null) {                    mSearcher.release();                    mSearcher = null;                }                mSort = null;                mLuceneHits = null;            }        }    }