gpt4 book ai didi

elasticsearch - 如何在must子句下使用范围和匹配进行查询?

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

给定一个必须与字段匹配的值,我试图提取过去24小时的数据。我已经写了一些查询来匹配该字段的值并查询最近24小时,但是我不知道如何组合它们。

查询最近的24小时:

{
"_source": ["instance_name", "@timestamp"],
"query": {
"range": {
"sampletime": {
"gte": "now-24h",
"lte": "now"
}
}
}
}

查询匹配字段:
{
"_source": ["instance_name", "@timestamp"],
"query": {
"match": {
"instance_name": "value_to_search"
}
}
}

尝试将两者结合:
{
"_source": ["instance_name", "@timestamp"],
"query": {
"bool": {
"must": [{
"match": {
"instance_name": "value"
},
"range": {
"sampletime": {
"gte": "now-24h",
"lte": "now"
}
}
}]
}
}
}

有什么办法可以将它们结合起来吗?也可以将同一字段下的多个值作为目标。
instance_name == x || instance_name == y || instance_name == z

最佳答案

您的尝试非常接近。 range查询周围的格式略有偏离。

这是更正后的示例:

{
"_source": ["instance_name", "@timestamp"],
"query": {
"bool": {
"must": [
{
"match": {
"instance_name": "value"
}
},
{
"range": {
"sampletime": {
"gte": "now-24h",
"lte": "now"
}
}
}
]
}
}
}

关于第二个问题,默认情况下,所有匹配查询都将使用 or运算符。

例如, FIELD将匹配所有匹配为 a or b or c的匹配:
{
"query": {
"match": {
"FIELD": "a b c"
}
}
}

您可以在中了解有关匹配查询的完整选项的更多信息。
official documentation

关于elasticsearch - 如何在must子句下使用范围和匹配进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58384703/

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