Overview#
LUNA Index Module is a module consisting of the Index Manager, Indexer and Indexed Matcher services, designed to speed up the matching of a large number of descriptors. When matching a large set of descriptors by classical brute-force matching, it is impossible to get a low latency with a high number of requests per second. Therefore, it is required to use approximation methods implemented in LIM that exchange some accuracy for high speed. These methods speed up the matching by building an index containing preprocessing data.
The basic principle of the module work is as follows:
The index is created using a task containing a "list_id" with linked faces, by which the matching will be made. You can also not specify "list_id", but set the settings for automatic indexing of all lists whose number of faces exceeds the value specified in a certain setting. After the index is created, the user sends a request to the API service, which redirects it to the Python Matcher Proxy service. The Python Matcher Proxy service determines where the matching will be performed - in the Python Matcher service or in the Indexed Matcher service. After matching, the response is returned to the user.
The ability to perform matching using the Indexed Matcher service is controlled using a separate parameter in the LUNA PLATFORM 5 license key. Thus, without a license, you can use the Indexer and Indexed Matcher services, but the built indexes cannot be processed.
This document contains the following main sections:
-
General concepts. The section contains:
- Description of index.
- Description of how LIM works.
- Description of the process of creating tasks for building indexes.
- Description of the index building process.
- Description of the matching process.
It is recommended to start your acquaintance with LIM from this section.
-
Service interaction. This section provides a interaction diagram of LIM services, which covers the necessary sequence of actions to perform the matching using LIM services.
- Index services. This section provides basic information about LIM services and the nuances of working with them.
- Matching plugin for Python Matcher Proxy. This section describes the operation of the matching plugin built into the Python Matcher Proxy service, which is required to perform the matching.
- Monitoring. This section describes the monitoring process for LIM services.
- API errors. This section provides an extended description of the errors returned by LIM services.
- Configuration parameters of services. This section describes the parameters for all LIM services.