gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:21:26 26 4
gpt4 key购买 nike

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

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

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

谢谢!

最佳答案

在我看来你有一个 vectorspace model ,因此 Lucene 或类似产品可能适合您。一般来说,倒排索引模型在以下情况下会很好:

  1. 你事先不知道类(class)数
  2. 相对于图片的数量有很多类

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

Lucene 是用 Java 编写的,我不知道有任何 C++ 端口。 Solr 将 Lucene 公开为 Web 服务,因此无论您选择哪种语言,都可以轻松访问它。

我对 Lemur 了解不多,但它看起来有类似的 vector 空间模型,而且它是用 C++ 编写的,因此您使用起来可能更容易。

关于c++ - 使用整数列表文档进行全文搜索的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7394420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com