【问题标题】:Elasticsearch get the last ten added eventsElasticsearch 获取最近十个添加的事件
【发布时间】:2014-02-26 21:50:16
【问题描述】:

我有一个包含多种类型的索引,其中之一是 事件,我想获取按开始日期排序的最后 10 个事件

{

"from":0, 
"size":10,
"query":{
    "range":{
        "start":{
            "from":"2014-02-25 00:00:01 UTC",
            "to":"2014-03-04 23:59:00 UTC"
        }
    }
},
"filter" :{
    "and": [
        {
            "type": {
                "value": "event"
            }
        }
    ]
},
"sort":[
    { "start":
        {"order":"asc"}
    }
]
}

我尝试了上述查询的变体,但似乎无法正常工作,弹性搜索不应用类型过滤器

【问题讨论】:

  • 上面的过滤器语法是正确的(和不需要)。您是否尝试过使用match_all 来确定@​​987654323@ 的问题?如果您只是对事件感兴趣,您不妨查询他们的端点(如localhost:9200/idx/event/_search
  • 请把这个作为你的答案,我是个笨蛋,你绝对有钱,谢谢
  • 仍然是个谜,为什么你有不同的类型
  • filter 在顶层指定,这意味着它仅适用于 hits 而不是例如方面或聚合。它在 1.0 中重命名为 post_filter。在这种情况下,您可能想使用filtered-query。
  • 您能否提供已编入索引的数据?会更容易提供答案。

标签: elasticsearch


【解决方案1】:

上面的过滤器语法是正确的(不需要 and )。

如果您只对事件感兴趣,不妨查询他们的端点(如localhost:9200/idx/event/_search

【讨论】:

    【解决方案2】:

    事实上,如果您想在查询中使用“类型”,则必须使用带有下划线的“_type”名称。这是一个例子:

    POST /items/_search
    {
        "query": {
            "match": {
               "_type": "item"
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2020-02-06
      • 1970-01-01
      • 2018-10-01
      • 2017-08-02
      相关资源
      最近更新 更多