gpt4 book ai didi

json - 如何使用 Elasticsearch 搜索嵌套对象

转载 作者:IT老高 更新时间:2023-10-28 12:47:51 26 4
gpt4 key购买 nike

好的,到目前为止,我还无法弄清楚这一点。希望有人能提供一些见解。

鉴于以下文档,我将如何搜索视频标题中包含“测试”的视频的所有文档?我正在使用 HTTP API。 (基本上,如何使用 Elasticsearch 来搜索嵌套对象?我知道肯定有文档,但我真的找不到。)

[{
id:4635,
description:"This is a test description",
author:"John",
author_id:51421,
video: {
title:"This is a test title for a video",
description:"This is my video description",
url:"/url_of_video"
}
},
{
id:4636,
description:"This is a test description 2",
author:"John",
author_id:51421,
video: {
title:"This is an example title for a video",
description:"This is my video description2",
url:"/url_of_video2"
}
},
{
id:4637,
description:"This is a test description3",
author:"John",
author_id:51421,
video: {
title:"This is a test title for a video3",
description:"This is my video description3",
url:"/url_of_video3"
}
}]

最佳答案

您不一定需要嵌套视频;您可以将其映射为普通字段。这意味着它将存储

'video:title': "This is a test title for a video3",
'video:description':"This is my video description3",
'video:url':"/url_of_video3"

你可以搜索video.title:'test'

据我所知,当您有多个嵌套项并且您只想对嵌套项进行查询时,嵌套字段很有用。例如,拥有这些数据

[{
id:4635,
description:"This is a test description",
author:"John",
author_id:51421,
video: [
{
title:"This is a test title for a video",
description:"This is my video description",
url:"/url_of_video"
},
{
title:"This is an example title for a video",
description:"This is my video description2",
url:"/url_of_video2"
}
]
},
{
id:4637,
description:"This is a test description3",
author:"John",
author_id:51421,
video: [
{
title:"This is a test title for a video3",
description:"This is my video description3",
url:"/url_of_video3"
}
]
}]

如果你搜索 video.title: 'test' 和 video.description: 'description2',并且 video 没有嵌套,它会给你一个虚假的结果(因为 test 在第一个视频中,description2 在第二个视频中,但在所有视频字段中你都有)。

在这种情况下,如果您将视频映射为嵌套,它会将每个视频作为一个单独的实体记住,并会搜索符合这些条件的单个视频,因此对于 video.title: 'test' 和 video.description : 'description2' 它不会返回任何内容,对于 video.title: 'example' 和 video.description: 'description2' 它将返回一个结果。

关于json - 如何使用 Elasticsearch 搜索嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140651/

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