【问题标题】:Elastic search bool query弹性搜索布尔查询
【发布时间】:2017-07-05 00:26:53
【问题描述】:

我的目标是找出与消息 ID 匹配为 MSG-1013 且严重性字段必须为信息的最近 10 个文档。这两个条件都应该满足并且匹配文本应该是准确的。我已经尝试使用下面的搜索查询,但它没有给我预期的结果。我在这里做错了什么?

{
    "size": 10,
    "query": {
        "bool": { 
            "must": [
                {
                    "match": { "messageId": "MSG-1013" }
                },
                {
                    "match": { "Severity": "Info" }
                }
            ] 
        }
    }
}

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    如果我对您的理解正确,您希望找到前 10 个(最近的)文档恰好具有“messageId”和“Severity”字段。我假设,您不需要分数,因为您的分数似乎是文档时间戳或其他类似日期字段的东西。为此,您可以将 bool 过滤器与排序查询结合使用。

    { 
        "query": {
            "bool": {
                "filter": [
                    { "term": { "messageId": "MSG-1013" } },
                    { "term": { "Severity": "Info" } }
                ]
            }
        },
        "sort" : [
            { "documentTimestamp" : {"order" : "desc"}}
        ],
        "size": 10
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-09
      相关资源
      最近更新 更多