Indexing data source (IRPCIndexingDataSource)
An interface for retrieving data for indexing.
This interface provides methods for retrieving the information of objects and files that must be indexed based on a logical timestamp. Methods for getting the data of objects for metadata indexing and file contents for file data indexing are also provided.
| gRPC service | MFiles.IRPCIndexingDataSource |
|---|---|
| Book and level | Server integration API, specialized |
| Methods | 21 |
| Proto file | mfiles/IRPCIndexingDataSource.proto |
Overview
For M-Files components only. Search indexers use this service to crawl the vault: they ask which objects and files have changed since their last position and fetch the data to index. Applications should not call it; to search, use IRPCSearch.
- Callers: the M-Files indexing service (the indexer process that M-Files Server runs for the vault's search indexes) uses all methods. M-Files' cloud search indexing services use the combined enumerator (GetNextObjectsForIX and its companions) together with IRPCIndexingDataSource2.
- Authentication: the M-Files indexing service logs in to the vault with Windows authentication as an internal process of M-Files Server, under the server's own service account, and so has the system administrator server role.
- Rights, data methods (enumerators,
HasMore...,GetSmallestTimestamp..., downloads and file caching): a vault session with the vault rightssee_all_objectsandsee_deleted_objects; no server role is needed. The data is returned regardless of object permissions, with the objects' permissions included for the index. - Rights, configuration methods (
GetFullTextSearchLanguage,GetObjectTypesWithPropertyDefs,GetEnabledIndexes,ConvertDestructionTimestampToLogical,GetFacetSources,GetIndexingOptions,GetVaultTempFilePath,NotifyObjectSkippedIndexing): the system administrator server role (server rightlog_in_to_any_vault). A vault administrator without it gets "You do not have the server-level access rights required by this operation." (codes 0x800400A8 and 0x800407E4). - Crawl model: every enumerator call carries an IndexingRequest
that names the index and the caller's last indexed position as a
LogicalTimestamp. The
...ForIXmethods serve a combined index of metadata and file content; the...ForMIXand...ForFIXmethods serve separate metadata and file data indexes.HasMore...checks whether there is work,GetNext...returns a batch and the new position, andGetSmallestTimestamp...maps a Change Tracking version to a logical timestamp.
Methods
| Method | Summary | Facts |
|---|---|---|
| CacheFileForIndexing | Writes a file version, in the requested format, to a temporary folder on the server computer and returns its local path. | internal: not for applications write session |
| CacheFileForIndexingCollective | Like CacheFileForIndexing, for up to 20 file versions in one call, processed in parallel. | internal: not for applications write session |
| ConvertDestructionTimestampToLogical | Converts a destruction time (a Windows FILETIME value) to the vault's logical destruction timestamp. | internal: not for applications write session |
| DownloadFile_BeginForFIX | Begins downloading a file for file data indexing. | internal: not for applications write session |
| DownloadFile_EndForFIX | Ends downloading a file for file data indexing. | internal: not for applications write session |
| DownloadFile_ReadBlockForFIX | Gets a specific block from a file from the server for file data indexing. | internal: not for applications write session |
| GetEnabledIndexes | Gets the names of the enabled indexes. | internal: not for applications write session |
| GetFacetSources | Gets the facet definitions configured for the vault, as JSON. | internal: not for applications write session |
| GetFullTextSearchLanguage | Gets the full-text search languages of the vault. | internal: not for applications write session |
| GetIndexingOptions | Gets the indexing options of one index, or of all indexes, as JSON. | internal: not for applications write session |
| GetNextFilesForFIX | Gets next object files for file data indexing. | internal: not for applications write session |
| GetNextObjectsForIX | Gets next objects and their data for indexing. | internal: not for applications write session |
| GetNextObjectsForMIX | Gets next objects and their data for metadata indexing. | internal: not for applications write session |
| GetObjectTypesWithPropertyDefs | Gets object types with associated property defs. | internal: not for applications write session |
| GetSmallestTimestampForFiledataIX | Gets the smallest timestamp of a file that has been modified since specific Change Tracking version. Returns also the current Change Tracking version. | internal: not for applications write session |
| GetSmallestTimestampForMetadataIX | Gets the smallest timestamp of an object that has been modified since specific Change Tracking version. Returns also the current Change Tracking version. | internal: not for applications write session |
| GetVaultTempFilePath | Gets the local path of the vault's temporary file folder on the server computer. | internal: not for applications write session |
| HasMoreObjectsForFiledataIX | Checks whether object files are waiting for a file data index, and optionally how many. | internal: not for applications write session |
| HasMoreObjectsForIX | Checks whether objects are waiting for a combined index, and optionally how many. | internal: not for applications write session |
| HasMoreObjectsForMetadataIX | Checks whether objects are waiting for a metadata index, and optionally how many. | internal: not for applications write session |
| NotifyObjectSkippedIndexing | Reports objects or files that an indexer skipped, and why. | internal: not for applications write session |