【问题标题】:Elasticsearch: Why my index query returns result which is not in my specific indexElasticsearch:为什么我的索引查询返回的结果不在我的特定索引中
【发布时间】:2017-04-18 07:21:21
【问题描述】:

来自doc

索引查询在跨多个索引执行搜索的情况下很有用。它允许指定一个索引名称列表和一个内部查询,该查询仅针对与该列表上的名称匹配的索引执行。

所以我只是将索引设置为user_event-2017.04.18,我只想要那个索引的结果,但结果是 Elasticsearch 给了我一些.kibana 索引的结果...

【问题讨论】:

  • 如果使用 POST 而不是 GET 会发生什么?
  • 为什么不简单地使用 POST user_event-2017.04.18/_search 而不是搜索所有索引并且必须使用 indices 查询来关注单个索引?
  • @Val 结果在我将动词从 GET 更改为 POST 后保持不变,请注意在文档中他们也使用 GET。
  • 是的,我知道,但这是一个不好的做法。发送正文时始终使用 POST。好的,现在发送POST user_event-2017.04.18/_search 会发生什么?
  • @Val 它有效,谢谢你,但我仍然想知道为什么我通过使用索引查询得到这个结果......这是一个错误吗?

标签: elasticsearch


【解决方案1】:

在 ES 5.0.0 中,indices 查询已被弃用,您应该在 _index 字段上运行 term 查询:

POST _search
{
  "query": {
    "bool": {
      "filter": [
        { "term": {"_index": "user_event-2017.04.18"}},
        { "term": {"tag": "wow"}}
      ]
    }
  }
}

更好的是,直接在user_event-2017.04.18 索引上运行查询

POST user_event-2017.04.18/_search
{
  "query": {
    "bool": {
      "filter": [
        { "term": {"tag": "wow"}}
      ]
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 2014-01-01
    • 2019-07-12
    • 2016-07-28
    • 1970-01-01
    • 2013-11-11
    • 2014-10-07
    相关资源
    最近更新 更多