附件类型的数组-如何获得突出显示的片段的文件名



我使用ElasticSearch来索引资源。我为每个索引资源创建文档。每个资源都可以包含元数据和二进制文件数组。我决定用附件类型处理这些二进制文件。元数据被映射为字符串类型的简单字段。二进制文件映射到附件类型的数组字段(字段名为attachments)。一切都很好-我可以根据二进制文件的内容找到我的资源。

我使用的另一个ElasticSearch特性是高亮显示。我成功地为元数据和二进制文件配置了高亮,但是……

当我要求attachments字段的高亮片段时,我只得到这些文件的片段,而没有关于片段来源的任何信息(附件数组字段中有许多文件)。我需要突出显示的片段和附件数组元素之间的映射-例如文件的名称或至少在数组中的索引。

结果:

"attachments" => ["Fragment <em>number</em> one", "Fragment <em>number</em> two"]

我需要什么:

"attachments" => [("file_one.pdf", "Fragment <em>number</em> one"), ("file_two.pdf", "Fragment <em>number</em> two")]

如果没有这样的映射,应用程序的用户知道特定的资源包含带有关键字的文件,但不知道文件的名称。

是否有可能实现我需要使用ElasticSearch?如何?

这里要存储的是文件名。您是否在json文档中发送了文件名?例如:

{
    "my_attachment" : {
        "_content_type" : "application/pdf",
        "_name" : "resource/name/of/my.pdf",
        "content" : "... base64 encoded attachment ..."
    }
}

如果是,你可以请求my_attachment._name字段。

如果这不是正确的答案,你能精炼一点你的问题,并给出一个JSON样例文档(没有base64内容)和你的映射,如果有的话?

更新:

当它来自一组附件时,你不能从每个文件中获得它,因为所有内容都是在场景后面平坦的。如果你真的需要,你可能想看看嵌套字段。

相关内容

  • 没有找到相关文章

最新更新