ran12ran 2015-01-15 05:41 采纳率: 0%
浏览 727

用过LIRE的朋友,请问在建索引的时候能额外添加文本信息并在检索时可同时加入文本条件吗?

我为图像建立索引的时候,想对图像进行手动的分类,需要加入一些文字作为标签,然后在检索的时候可以加入标签文字以实现在一定范围内的图像检索。
我在建索引的时候,可以往DocumentBuilder创建的Document中添加额外的Field,这是没问题的。但在检索的时候,不知道如何为ImageSearcher添加文本条件,也没有发现提供这样的方法,请问有办法实现我的需求吗?

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-26 11:54
    关注

    该回答引用ChatGPT

    可以使用Lucene提供的QueryParser类来解析查询语句,并根据需要添加过滤条件来实现你的需求。


    在你的索引文档中,你可以将图像的标签作为额外的Field添加到Document中,例如:

    Document doc = new Document();
    doc.add(new TextField("image_path", imagePath, Field.Store.YES));
    doc.add(new TextField("image_label", imageLabel, Field.Store.YES));
    indexWriter.addDocument(doc);
    

    在查询时,你可以使用QueryParser来解析查询语句,并使用BooleanQuery来组合不同的查询条件,例如:

    QueryParser parser = new QueryParser("image_label", analyzer);
    Query query = parser.parse("label1 AND label2");
    BooleanQuery booleanQuery = new BooleanQuery.Builder()
        .add(new TermQuery(new Term("image_path", "path/to/image")), BooleanClause.Occur.MUST)
        .add(query, BooleanClause.Occur.MUST)
        .build();
    TopDocs topDocs = imageSearcher.search(booleanQuery, numHits);
    

    在上面的代码中,我们首先使用QueryParser来解析查询语句,然后创建一个BooleanQuery,并将图像路径作为“MUST”条件,将查询语句作为“MUST”条件添加到BooleanQuery中。这将使我们只检索与查询语句匹配的标签的图像。


    希望这可以帮助到你实现你的需求。

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码