Introduction¶
When matching a really 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 techniques that exchange some accuracy for massive speed. These techniques speed up the matching by preprocessing the data into an efficient index.
Luna Index Module (LIM) is designed to build efficient indices on a set of descriptors and perform matching on it. LIM consists of following components:
Manager - server that processes index building tasks and coordinates indexers
Indexer - builds indices
Matcher - performs approximate nearest neighbor matching using indices built
LIM has the following applicability limitations:
Index becomes outdated as soon as the new objects are actively created (or deleted) in the Luna Platform
Index building is quite slow process, so it is not supposed to be done frequently
Index building takes a lot of resources for a long time
Matcher still searches against the outdated version of the index until it is rebuild