Мне кажется, что у вас есть модель векторного пространства , так что Lucene или аналогичный продукт может вам подойти. В общем, модель с обратным индексом будет хорошей, если:
- Вы заранее не знаете количество классов
- Есть много классов относительно количества изображений
Если ваша проблема не соответствует этим критериям, нормальная реляционная БД может работать лучше, как предположил Томас. Если он соответствует № 1, но не № 2, вы можете исследовать одну из «нелицензионных» баз данных, ориентированных на столбцы. Я не достаточно знаком с ними, чтобы сказать вам, насколько хорошо они будут работать, но моя интуиция заключается в том, что вам нужно будет самому копировать многие функциональные возможности в инструментарии IR.
Lucene написан на Java, и я не знаю ни одного порта C ++. Solr представляет Lucene как веб-сервис, поэтому достаточно легко получить к нему доступ с любого языка, который вы выберете.
Я не знаю много о Лемуре, но похоже, что у него похожая модель векторного пространства, и она написана на C ++, так что вам будет проще пользоваться.