Search 附件类型数组-如何为突出显示的片段获取文件名?
我使用ElasticSearch索引资源。我为每个索引资源创建文档。每个资源都可以包含元数据和二进制文件数组。我决定用类型来处理这些二进制文件。元数据映射到字符串类型的简单字段。二进制文件映射到类型的数组字段(名为Search 附件类型数组-如何为突出显示的片段获取文件名?,search,elasticsearch,attachment,highlight,highlighting,Search,elasticsearch,Attachment,Highlight,Highlighting,我使用ElasticSearch索引资源。我为每个索引资源创建文档。每个资源都可以包含元数据和二进制文件数组。我决定用类型来处理这些二进制文件。元数据映射到字符串类型的简单字段。二进制文件映射到类型的数组字段(名为附件的字段)。一切正常-我可以根据二进制文件的内容找到我的资源 我使用的ElasticSearch的另一个功能是高亮显示。我成功地为元数据和二进制文件配置了突出显示,但是 当我要求突出显示我的附件字段的片段时,我只得到这些文件的片段,而没有关于片段来源的任何信息(附件数组字段中有许多文
附件的字段
)。一切正常-我可以根据二进制文件的内容找到我的资源
我使用的ElasticSearch的另一个功能是高亮显示。我成功地为元数据和二进制文件配置了突出显示,但是
当我要求突出显示我的附件
字段的片段时,我只得到这些文件的片段,而没有关于片段来源的任何信息(附件数组字段中有许多文件)。我需要在突出显示的片段和附件数组的元素之间进行映射,例如文件名或数组中的索引
我得到的是:
“附件”=>[“片段一号”、“片段二号”]
我需要的是:
“附件”=>[(“文件一.pdf”,“片段一号”),(“文件二.pdf”,“片段二号”)]
如果没有这样的映射,应用程序的用户知道特定资源包含带有关键字的文件,但没有关于文件名的指示
是否可以使用ElasticSearch实现我需要的功能?怎么做
提前感谢。因此,您希望在此处存储文件名。 您是否在json文档中发送了文件名?比如:
{
"my_attachment" : {
"_content_type" : "application/pdf",
"_name" : "resource/name/of/my.pdf",
"content" : "... base64 encoded attachment ..."
}
}
如果是这样,您可能需要字段我的\u附件。\u name
如果这不是正确的答案,您能否对您的问题稍加细化,并给出一个JSON示例文档(没有base64内容)和映射(如果有)
更新:
当它来自一系列附件时,你无法从每个文件中获得它,因为场景后面的一切都是平坦的。如果确实需要,您可能需要查看嵌套字段。我存储文件名,但需要将每个突出显示片段与该文件名关联。我突出显示的字段包含许多文件。ElasticSearchAPI并没有给我从突出显示的片段到单个附件(数组的许多元素之一)的映射。看一看HighlightField类。我如何使用Text类获取有关高亮显示文件的信息?突出显示的字段可以是一个数组(许多文件)。到目前为止,您找到了解决方案吗?