private void processCqEvent(CqEvent cqEvent) throws IOException {
    if (preloadLatch.getCount() > 0) waitForPreload();

    Operation operation = cqEvent.getQueryOperation();

    if (operation.isCreate() || operation.isUpdate()) {
      Indexable indexable =
          indexableFactory.createIndexable(cqEvent.getKey(), cqEvent.getNewValue());

      if (operation.isCreate()) searchEngine.insert(indexable);
      else if (operation.isUpdate()) searchEngine.update(indexable);
    } else if (operation.isDestroy()) {
      searchEngine.delete(indexableFactory.createKeyTerm(cqEvent.getKey()));
    }
  }