首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对整数列表文档进行全文搜索的最佳方法

对整数列表文档进行全文搜索的最佳方法
EN

Stack Overflow用户
提问于 2011-09-13 05:43:05
回答 2查看 425关注 0票数 1

我正在开发一个基于相似度的C++/Qt图像检索系统,它的工作原理如下(我将尽量避免无关或离题的细节):

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

我的问题是,什么是实现这种搜索的最好方法?我听说过Lucene,Lemur和其他索引方法,但我不知道这种全文搜索是否是最好的方式,因为域名被缩小了(只有整数而不是单词)。我想知道在效率、准确性或C++友好性方面的替代方案。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-09-15 04:19:15

我听起来像是你有一个vectorspace model,所以Lucene或类似的产品可能对你很好。通常,如果满足以下条件,倒排索引模型将是很好的:

  1. 你不知道预先有多少类
  2. 有很多类与图像的数量相关

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

Lucene是用Java语言编写的,我不知道有什么C++端口。Solr将Lucene公开为web服务,因此从您选择的任何语言都可以很容易地访问它。

我不太了解Lemur,但它看起来有一个类似的向量空间模型,而且它是用C++编写的,所以对你来说可能更容易使用。

票数 0
EN

Stack Overflow用户

发布于 2011-12-15 13:16:09

您可以在此处查看Lucene for image retrieval (LIRE):http://www.semanticmetadata.net/2006/05/19/lire-lucene-image-retrieval-04-released/

如果我错了,你正在尝试实现一个典型的词袋图像检索,我说的对吗?如果是这样的话,您可能正在尝试构建一个倒排文件索引。Lucene本身并不适合,因为你可能已经意识到它索引的是文本而不是数字。使用它的类来查询索引也是一个问题,因为它不是被设计成“解析”(即检测关键点,提取描述符,然后向量量化)图像到查询向量中。

另一方面,LIRE已被修改为索引特征向量。然而,对于bag of words模型,它似乎不是开箱即用的。此外,我想我已经在作者的网站上看到,它目前使用蛮力匹配而不是倒排文件索引来检索图像,但我希望它比Lucene本身更容易扩展以达到您的目的。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7394420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档