Om jag var du skulle jag föredra att jämföra deskriptorerna i koden, snarare än i SQL. SQL är inte menat för det. Jag skulle göra följande:-
1. Pre-load N descriptors from SQL onto memory.
2. Compare distances to query descriptor, descriptor by descriptor.
3. If distance<threshold, push to possiblematches.
4. When you reach N/2 descriptors, push the next N.
5. Compare all matches, choose the best one or the best D descriptors, as per your requirement.
Men för detta skulle jag hellre använda OpenCVs inbyggda FileStorage-klass som tillhandahåller I/O till XML- och YAML-filer; det löser huvudvärken med att manuellt analysera deskriptorvärden.