gpt4 book ai didi

elasticsearch - 没有嵌套文档的文档数量

转载 作者:行者123 更新时间:2023-12-02 22:41:22 25 4
gpt4 key购买 nike

我试图弄清楚如何执行此示例。假设我有3个文档,结构如下:

{
"name": "test one",
"images": [
{
"id": 1
}
]
}


{
"name": "test two",
"images": []
}


{
"name": "test three",
"images": [
{
"id": 2
}
]
}

我想在 images字段中获得带有对象的文档 的计数(在这种情况下为2),或者(不太理想)在images字段中获得而没有对象的文档的计数(在这种情况下, 1)。如果这不是很明显,则用于聚合查询之一。我已经尝试了约100种不同的聚合类型,包括
... 
"withoutPhotos": {
"nested": {
"path": "images"
},
"aggs": {
"noPhoto": {
"missing": {
"field": "images.id"
}
}
}
}

这个,
... 
"withoutPhotos": {
"missing": {
"field": "images"
}
}

和其他人的丰富。有任何想法吗?

最佳答案

这是一个查询,用于返回缺少images.id字段的结果(看起来与您的字段非常相似):

curl -XGET 'http://localhost:9200/index/test/_search?search_type=count&pretty' -d '
> { "query" :{
> "match_all": { }
> },
> "aggs": {
> "noPhoto": { "missing": {"field": "images.id"} }
> }
> }'
{
"took" : 4,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 3,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"noPhoto" : {
"doc_count" : 1
}
}
}

这是一个返回实例数量images.id的查询-不能完全确定这是否是您想要的(它返回的是字段数而不是文档数)。
olly@HomePC:~$ curl -XGET 'http://localhost:9200/index/test/_search?search_type=count&pretty' -d '
> { "query" :{
> "match_all": { }
> },
> "aggs": {
> "images_count" : { "value_count" : { "field" : "images.id" } }
> }
> }'
{
"took" : 4,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 3,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"images_count" : {
"value" : 2
}
}
}

其他选项是在查询中放置一些查找“images.id”的内容-例如通配符。

关于elasticsearch - 没有嵌套文档的文档数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27621649/

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