查询 elasticsearch 其中键的值至少是某个数字
Query elasticsearch where a key's value is at least some number
我正在处理文件以识别它们是否包含标签以及标签被识别的置信度。
我创建了一个名为 tags
的 nested
映射,其中包含 label
(文本)和 confidence
(在 0 到 100 之间浮动)。
这是我认为查询将如何工作的示例(我知道它无效)。应该是 "Find documents that have the tags labelled A and B. A must have a confidence of at least 37 and B must have a confidence of at least 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
}
}
}
]
}
}
}
}
]
}
}
}
请注意,每个嵌套文档都作为单独的文档编制索引。这就是您必须提及两个单独查询的原因。否则,根据你所拥有的,它会搜索其父文档的 one/single 嵌套文档中的所有四个值。
希望对您有所帮助!
我正在处理文件以识别它们是否包含标签以及标签被识别的置信度。
我创建了一个名为 tags
的 nested
映射,其中包含 label
(文本)和 confidence
(在 0 到 100 之间浮动)。
这是我认为查询将如何工作的示例(我知道它无效)。应该是 "Find documents that have the tags labelled A and B. A must have a confidence of at least 37 and B must have a confidence of at least 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
}
}
}
]
}
}
}
}
]
}
}
}
请注意,每个嵌套文档都作为单独的文档编制索引。这就是您必须提及两个单独查询的原因。否则,根据你所拥有的,它会搜索其父文档的 one/single 嵌套文档中的所有四个值。
希望对您有所帮助!