gpt4 book ai didi

elasticsearch - Elasticsearch 嵌套查询是否可以只返回嵌套字段的匹配嵌套文档?

转载 作者:行者123 更新时间:2023-11-29 02:50:30 24 4
gpt4 key购买 nike

我是 Elasticsearch 的新手,提出了一个问题,即 Elasticsearch 嵌套查询是否可能只返回嵌套字段的匹配嵌套文档。

例如,我有一个名为 blog 的类型,其中有一个名为 comments 的嵌套字段

{
"id": 1,
...
"comments":[
{"content":"Michael is a basketball player"},
{"content":"David is a soccer player"}
]
}
{
"id": 2,
...
"comments":[
{"content":"Wayne is a soccer player"},
{"content":"Steven is also a soccer player"},
]
}

和嵌套查询

{"query":{
"nested":{
"path":"comments",
"query":{"match":{"comments.content":"soccer"}}
}
}

我需要搜索包含提及“足球”的评论的博文,以及每篇博文匹配“足球”的评论数(在示例中它计数为 1,因为另一条评论刚刚提到“篮球”) .

{"hits":[
{
"id":1,
...
"count_for_comments_that_matches_query":1,
},
{
"id":2,
...
"count_for_comments_that_matches_query":2,
}
]}

然而,Elasticsearch 似乎总是返回完整的文档,所以我该如何实现它,或者我做不到?

最佳答案

答案就在这里。

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-inner-hits.html#nested-inner-hits

您需要使用 Elastic 搜索的 nested inner hits 功能。

{
"_source": [
"id"
],
"query": {
"bool": {
"must": [
{
"match": {
"id": "1"
}
},
{
"nested": {
"path": "comments",
"query": {
"match": {
"comments.content": "soccer"
}
},
"inner_hits": {}
}
}
]
}
}
}

我认为它会解决问题

关于elasticsearch - Elasticsearch 嵌套查询是否可以只返回嵌套字段的匹配嵌套文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30323481/

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