Share via


Programming APIs

[Indexing Service is no longer supported as of Windows XP and is unavailable for use as of Windows 8. Instead, use Windows Search for client side search and Microsoft Search Server Express for server side search.]

Each programming language has several APIs that communicate with Indexing Service, and you can choose the API most suitable for a task. When you choose an API, you can balance programming complexity with application performance. In general, the OLE DB Provider API is the most difficult API to program, but it is the most flexible and executes fastest. APIs that encapsulate the OLE DB Provider (such as Admin Helper or Query Helper) are easier to program, but they are less flexible and slower in execution. If you have a choice, consider this tradeoff when selecting an API.

The following table lists the APIs available for performing Indexing Service tasks and gives a brief description of each.

API Description
OLE DB Provider The lowest-level API for querying with Indexing Service. It specializes the COM interfaces of standard Microsoft OLE DB to access Indexing Service data. It's the highest performance, but most complex, API and is usually used with C++ programs.
OLE DB Helper A high-level API for querying and filtering with Indexing Service. It provides a functional interface for accessing Indexing Service data, primarily from C++ language programs.
Microsoft ActiveX Data Objects (ADO) An intermediate-level API for querying Indexing Service. It provides an automation layer between the OLE DB Provider and automation languages for accessing Indexing Service data.
Admin Helper A high-level API for managing Indexing Service. It provides an object-based interface to Indexing Service from automation languages.
Query Helper A high-level API for querying Indexing Service. It provides an object-based interface for accessing Indexing Service data from automation languages.
ISAPI Extensions An intermediate-level, high-performance API extension to the Internet Server Applications Programming Interface (ISAPI). It provides access for managing and querying Indexing Service from Internet Information Services (IIS) applications. For information about ISAPI extensions, see the Programmer's Guide in the Internet Information Services SDK.
IFilter Component A low-level, customizable COM interface, usually written in C++, for extracting text and values from documents.
Language Resources IWordBreaker and IStemmer implementations that allow the Index and Querying components of Indexing Service to access documents in their native languages and locales.

 

Secure Code Practices