I have a search operation taking place on a server that essentially queries images using
OpenCV against other images from a database. Since each image query operation is quite expensive computationally, I want to find a good way to sort the images in the database to compare them in a good order. I want the program to be more likely to find a good match early and less likely to have to try all the images in the database to get a match. I suspect there would be strong correlations between data about the user carrying out the search (such as his age, gender, location, etc...) and the likelihood of him searching for a particular image, taking into account the history of users who successfully searched for this image and their data.
I was thinking this could be achieved with a neural network, however, I haven't found anything online about doing such type of sorting with one. Maybe I could use some type of machine learning to create a score for each item in the database and then use conventional sorting. Could you kindly recommend what might be a good approach to this?