2017-07-05 179 views
0

我的目標是找出最新的10個文檔,它們與消息ID相匹配,因爲MSG-1013和Severity字段必須是info。這兩個條件應該滿足,匹配文本應該是準確的。我已經嘗試使用下面的搜索查詢,但它不會給我預期的結果。我在這裏做錯了什麼?彈性搜索布爾查詢

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

回答

0

如果我正確地理解了你,你想找到正好具有「messageId」和「Severity」字段的前10個(最近的)文檔。我假設,你不需要分數,因爲你的分數似乎是文檔時間戳或類似日期字段的其他內容。爲此,您可以將bool過濾器與排序查詢結合使用。

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

謝謝。它運行良好。 – user2822012