Previous Topic: Indexer InstanceNext Topic: Implementing the Query Function


Sequence of Operation from a Client (Indexer)

  1. The client first verifies the Content Provider’s capabilities regarding indexing. For more information see Sequence of Operation from a Client.
  2. The client (typically the Content Indexer service) uses its ICISContentProvider interface pointer and calls CreateIndexerInstance() to get a ICISContentIndexer interface pointer.
  3. The client initializes the Indexer instance by calling ICISContentIndexer::Init().
  4. Upon a successful initialization of the Indexer instance, the client cycles through the documents it wants to index using that Indexer, calling ICISContentIndexer::Index() for each of them.
  5. If a client is batching documents, it may sometimes call ICISContentIndexer::Flush() and possibly pause while it waits to be told of the completion of all the pending documents at that point.
  6. After having sent all its documents to be indexed, the client calls ICISContentProvider::Terminate() or releases the ICISContentIndexer interface pointer. The client also waits to be told of the completion of all the documents still pending.

    Note: Calling Terminate() may occur after waiting for the documents to complete; that is entirely up to the client.

If the Content Indexer console operator stops an indexing job, the client that is managing that job stops sending documents. The process effectively arrives at step 6 early. In exceptional circumstances, the client may stop sending documents, and call ICISContentIndexer::Abort().