Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 附件类型数组-如何为突出显示的片段获取文件名?_Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Attachment_Highlight_Highlighting - Fatal编程技术网 elasticsearch,attachment,highlight,highlighting,Search,elasticsearch,Attachment,Highlight,Highlighting" /> elasticsearch,attachment,highlight,highlighting,Search,elasticsearch,Attachment,Highlight,Highlighting" />

Search 附件类型数组-如何为突出显示的片段获取文件名?

Search 附件类型数组-如何为突出显示的片段获取文件名?,search,elasticsearch,attachment,highlight,highlighting,Search,elasticsearch,Attachment,Highlight,Highlighting,我使用ElasticSearch索引资源。我为每个索引资源创建文档。每个资源都可以包含元数据和二进制文件数组。我决定用类型来处理这些二进制文件。元数据映射到字符串类型的简单字段。二进制文件映射到类型的数组字段(名为附件的字段)。一切正常-我可以根据二进制文件的内容找到我的资源 我使用的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类获取有关高亮显示文件的信息?突出显示的字段可以是一个数组(许多文件)。到目前为止,您找到了解决方案吗?