Skip to content

Overview#

In the classic scenario of descriptor matching using the Python Matcher service, the processing of match requests can be slow for several reasons:

  • due to the large amount of data and the inability to speed up the query by any changes in the database configuration;

  • due to the way the data is stored - the descriptor and the object identifier (face_id/event_id) are stored in different database tables. Filters specified in a matching request can also be represented in a separate database table, which slows down query processing;

  • due to internal database limitations.

The additional indexing module enables you to significantly speed up the processing of matching requests by indexing descriptors. The indexing module contains the following services:

  • Index Manager manages index building tasks and coordinates the Indexer service;
  • Indexer creates indexes based on the list of descriptors;
  • Indexed Matcher performs descriptors matching against indexes created.

To work with the module, the Python Matcher Proxy service with a matching plugin is required that enables you to send matching requests from the API service to the Indexed Matcher service.

The Index Manager and Indexed Matcher services also require a Redis database.

The Index Manager and Indexer services are scalable, which means you can use multiple instances.