@Test
  public void quick() throws Exception {
    Mailbox mbox =
        MailboxManager.getInstance().getMailboxByAccountId(MockProvisioning.DEFAULT_ACCOUNT_ID);

    Contact contact =
        mbox.createContact(
            null,
            new ParsedContact(
                Collections.singletonMap(ContactConstants.A_email, "*****@*****.**")),
            Mailbox.ID_FOLDER_CONTACTS,
            null);
    MailboxTestUtil.index(mbox);

    mbox.createContact(
        null,
        new ParsedContact(Collections.singletonMap(ContactConstants.A_email, "*****@*****.**")),
        Mailbox.ID_FOLDER_CONTACTS,
        null);

    SearchParams params = new SearchParams();
    params.setQueryString("test");
    params.setSortBy(SortBy.NONE);
    params.setTypes(EnumSet.of(MailItem.Type.CONTACT));
    params.setQuick(true);

    ZimbraQuery query =
        new ZimbraQuery(new OperationContext(mbox), SoapProtocol.Soap12, mbox, params);
    ZimbraQueryResults result = query.execute();
    Assert.assertTrue(result.hasNext());
    Assert.assertEquals(contact.getId(), result.getNext().getItemId());
    Assert.assertFalse(result.hasNext());
    Closeables.closeQuietly(result);
  }
    @Override
    public void visit(GalContact contact) throws ServiceException {
      Map<String, Object> attrs = contact.getAttrs();
      String id = contact.getId();
      mappings.remove(id);
      attrs.put(ContactConstants.A_dn, id);
      ZimbraLog.gal.debug("processing gal contact " + id);
      DataSourceItem dsItem = DbDataSource.getReverseMapping(getDataSource(), id);
      addFileAsStr(attrs);
      if (dsItem.itemId == 0) {
        ZimbraLog.gal.debug("creating new contact " + id);
        dsItem.remoteId = id;
        ParsedContact pc = new ParsedContact(attrs);
        dsItem.itemId = mbox.createContact(octxt, pc, fid, null).getId();
        DbDataSource.addMapping(getDataSource(), dsItem);
      } else {
        Contact mboxContact = mbox.getContactById(octxt, dsItem.itemId);

        // check for update conditions
        String syncDate = mboxContact.get(MODIFY_TIMESTAMP);
        String modifiedDate = (String) contact.getAttrs().get(MODIFY_TIMESTAMP);
        if (!force && syncDate != null && syncDate.equals(modifiedDate)) {
          ZimbraLog.gal.debug("gal contact %s has not been modified", id);
          return;
        }
        if (!force && allFieldsMatch(attrs, mboxContact.getAllFields())) {
          ZimbraLog.gal.debug("no field has changed in gal contact %s", id);
          return;
        }

        ZimbraLog.gal.debug("modifying contact " + id);
        ParsedContact pc = new ParsedContact(attrs);
        mbox.modifyContact(octxt, dsItem.itemId, pc);
      }
    }