c-使用整数列表文档进行全文搜索的最佳方法

我正在基于相似性的C / Qt图像检索系统上进行工作,其工作方式如下(我将尽量避免不相关或偏离主题的细节):

我收集图像并使用OpenCV函数从图像中建立索引.之后,对于每个图像,我得到一个代表每个图像所属的重要“类”的整数值列表.两个图像的共同点越多,它们被认为越相似.
因此,当我要查询系统时,我只需要计算代表查询图像的整数列表,执行全文搜索(或类似搜索)并检索X个最相似的图像.

我的问题是,进行这种搜索的最佳方法是什么?
我听说过Lucene,Lemur和其他索引方法,但是由于域减少了(仅用整数而不是单词),因此我不知道这种全文搜索是否是最佳方法.
我想了解有关效率,准确性或C语言友好性方面的替代方案.

谢谢!

解决方法:

在我看来,您的产品为vectorspace model,因此Lucene或类似产品可能对您来说效果很好.通常,如果满足以下条件,则倒置索引模型将是不错的选择:

>您事先不知道课程数量
>与图像数量有关的类很多

如果您的问题不符合这些条件,那么正常的关系数据库可能会更好,如Thomas所建议的那样.如果满足#1但不满足#2,则可以研究“面向列”的非关系数据库之一.我对这些工具还不够熟悉,无法告诉您它们将如何工作,但是我的直觉是您需要自己复制IR工具包中的许多功能.

Lucene是用Java编写的,我不知道任何C端口. Solr将Lucene公开为Web服务,因此很容易从您选择的任何语言以这种方式访问​​它.

我对Lemur不太了解,但看起来它具有类似的向量空间模型,并且用C编写,因此您可能更容易使用.

上一篇:经常更新索引的FieldCache


下一篇:java-如何在Lucene中仅标记某些单词