我想创建一个在其数据库中搜索类似文档的应用程序;例如。用户上传文档(文本,图像等),我想查询我的应用程序中的类似文档。
我已经为这个过程创建了必要的算法(指纹识别,特征提取,散列,哈希比较等),我正在寻找一个框架,它将所有这些结合起来。
例如,如果我在Lucene中实现它,我会执行以下操作:
所以,基本上Lucene可能是一个不错的选择 - 但据我所知,Lucene并不是一个文档相似性搜索引擎,而是一个基于术语的搜索引擎。
我的问题是:是否适用于上述问题的任何应用程序/框架?
谢谢, krisy
更新:似乎我上面描述的过程称为基于内容的媒体(声音,图像,视频。)检索。
有很多项目使用Lucene,请参阅:http://wiki.apache.org/lucene-java/PoweredBy(Lire,Alike等),但仍然没有找到任何专用框架......
答案 0 :(得分:0)
如果我得到了正确的答案,您拥有自己的数据库,并且在用户上传时/之后您正在搜索数据库中的副本或副本/类似数据。
如果是这种情况,相比之下域名非常大。
1)对于Image,你必须使用模式匹配,有很少的文件可用于图像重复查找器,在网上,搜索它们你会得到很多选项,
2)对于文档,再次进行特征划分
每个文档都有不同的属性,现在Lucene
可以帮助你,但它的搜索引擎
在搜索语言模式时,我们需要检查许多内容,因为您正在搜索类似的内容(不完全相同)。
因此,模糊语言程序会派上用场。
这个要求太大了,论坛页面不足以解释所有内容,我希望这样做很多
答案 1 :(得分:0)
由于您使用的是Lucene,您可以查看SOLR。我确实意识到它不是一个专门用于你的目的的框架,但它确实在Lucene之上添加了一些非常方便的东西。鉴于Lucene的可插拔性,其跟踪记录以及有大量有用资源的事实,SOLR可能会帮助您完成工作。
此外,@ mindas指出的answer链接到the blog post,描述了如何使用SOLR实现目标的技术细节(但您可能已经在此期间阅读过)。