Elasticsearch按星期几过滤

时间:2015-06-08 08:49:29

标签: elasticsearch

我有以下文档结构:

{
    "@version" : "1",
    "@timestamp" : "2015-05-25T13:31:43.848Z",
    "type" : "myevent",
    "value": 1
}

是否可以查询星期日发生的所有文件?

2 个答案:

答案 0 :(得分:2)

或者,如果您因enable dynamic scripting使用脚本文件而不想this

{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "script_file": "my_date_script",
          "params": {
            "some_day": 7
          }
        }
      }
    }
  }
}

其中my_date_script.groovy应放在/config/scripts下,其内容应如下所示:

def day = doc['@timestamp'].date.dayOfWeek; day == some_day

或者,正如我在评论中提到的,对于更快的查询(因为脚本不是特别快),索引索引中的星期几并直接查询。

答案 1 :(得分:1)

您可以尝试使用script filter来查询它:

elasticsearch.yml

请注意,您需要通过将其添加到script.disable_dynamic: false 配置

来确保启用动态脚本
  public static MvcHtmlString CreateSubGrid<T>(this HtmlHelper helper,      
                                                    GridViewModel<T> model)
 {

     htmlBuilder.AppendFormat(@"<table id=""{0}"" class=""scroll""    
       cellpadding=""0"" cellspacing=""0""></table>", model.Id);
     htmlBuilder.AppendFormat(@"<div id=""{0}Pager"" class=""scroll"" 
                         style=""text-align:center;""></div>", model.Id);

     htmlBuilder.AppendFormat(@"<script type=""text/javascript"">");
    .....
    .....