gpt4 book ai didi

elasticsearch - 查询键的值至少为某个数字的elasticsearch

转载 作者:行者123 更新时间:2023-12-03 00:49:29 25 4
gpt4 key购买 nike

我正在处理文件以识别它们是否包含标签以及标签被识别出的置信度。

我创建了一个称为nestedtags映射,其中包含label(文本)和confidence(0到100之间的 float )。

这是我认为查询将如何工作的示例(我知道它无效)。它应该类似于“查找带有标签A和B的文档。A必须具有至少37的置信度,B必须具有至少80的置信度”。

{
"query": {
"nested": {
"path": "tags",
"query": {
"bool": {
"must": [
{
"match": {
"tags.label": "A"
},
"range": {
"tags.confidence": {
"gte": 37
}
}
},
{
"match": {
"tags.label": "B"
},
"range": {
"tags.confidence": {
"gte": 80
}
}
}
]
}
}
}
}
}

有任何想法吗?我很确定我需要采取不同的方法(不同的映射)。我不确定如何在ElasticSearch中完成此操作。这可能吗?

最佳答案

假设您的父文档将包含两个嵌套文档,如下所示:

{  
"tags":[
{
"label":"A",
"confidence":40
},
{
"label":"B",
"confidence":85
}
]
}

如果是这样,下面是您的查询内容:

嵌套查询:
POST <your_index_name>/_search
{
"query": {
"bool": {
"must": [
{
"nested": {
"path": "tags",
"query": {
"bool": {
"must": [
{
"match": {
"tags.label": "A"
}
},
{
"range": {
"tags.confidence": {
"gte": 37
}
}
}
]
}
}
}
},
{
"nested": {
"path": "tags",
"query": {
"bool": {
"must": [
{
"match": {
"tags.label": "B"
}
},
{
"range": {
"tags.confidence": {
"gte": 80
}
}
}
]
}
}
}
}
]
}
}
}

请注意,每个嵌套文档都被索引为一个单独的文档。这就是您必须提及两个单独的查询的原因。否则,利用您所拥有的功能,它将在其父文档的一个/单个嵌套文档中搜索所有四个值。

希望这可以帮助!

关于elasticsearch - 查询键的值至少为某个数字的elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55894198/

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