gpt4 book ai didi

java - java中的索引

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

我正在开发一个项目,必须对图像及其文本元数据建立索引。我首先想到的是 Lucene,但它不支持图像。然后我找到了 LIre,但它只能处理图像,并且不会处理元数据。

是否有开源解决方案可以在单个索引中索引图像及其元数据?

否则,我发现的唯一解决方案是拥有两个单独的索引并合并结果。考虑到每个索引图像都匹配一组索引元数据,我只是不知道如何合并它们。在这种情况下,我可能需要一种方法将元数据集与图像相互链接。

您能向我解释一下如何真正合并结果吗?

最佳答案

我对 LIRE 不太熟悉,但看起来您将使用 DocumentBuilder 创建文档。当您从中获取文档时,您可以轻松地向其中添加自己的字段,例如:

 DocumentBuilder builder = /*create your builder*/
Document doc = builder.createDocument(image, id);
Field metadata = /*create your metadata field*/
doc.add(metadata);
indexWriter.addDocument(doc);

这将使您能够利用 LIRE 图像识别并能够根据元数据单独进行搜索。如果您需要能够混合两者,例如通过某些元数据匹配约束过滤的图像识别搜索,您可能需要自己实现。查看 GenericFastImageSearcher 的代码,它实际上并不构造 Lucene 查询,而是迭代图像并进行比较以找到最佳匹配。您应该能够创建自己版本的 findSimilar 方法,通过简单地继续不满足的地方来过滤迭代循环中的结果:

for (int i = 0; i < docs; i++) {
if (reader.hasDeletions() && !liveDocs.get(i)) continue;
d = reader.document(i);
if (!d.getField("metadata").equals(constraint)) continue;

关于java - java中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19235647/

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