我试图创建一个搜索来返回带有关键术语的系统日志消息。我也想限制时间段。基于以下文档:
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/full-text-queries.html
我以为我可以将查询和过滤器结合起来来检索这些文档:
GET /_search {
"query": {
"query_string" : {
"default_field" : "message",
"query" : "error OR warn OR fatal OR fail"
}
},
"filter": {
"range": {
"timestamp": {
"gte": "now-1hr"
}
}
}}
这无法解析,我不能100%清楚原因。有没有人找到一个好的文档,显示如何将查询与基于时间的范围过滤器结合起来?我一直在网上搜索,但我的搜索没有找到任何有用的东西。感谢您的任何见解。
答案 0 :(得分:1)
你想要的是一个bool查询
<tbody ng-repeat="ts in allInfo track by $index">
<tr>
<td>
{{ts.id}}
</td>
<td>
{{ts.participant}}
</td>
<td>
{{temp[$index]}}
</td>
<td class="text-capitalize">
{{ts.action}}
</td>
</tr>
</tbody>
答案 1 :(得分:0)
使用&#34;条款&#34;查询,那是你的&#34;或&#34;
GET /_search
{
"query":{
"bool":{
"must":[
{
"terms": {
"message": [
"error",
"warn",
"fatal",
"fail"
]
}
},
{
"range":{
"timestamp":{
"gte":"now-1hr"
}
}
}
]
}
}
}