Elasticsearch:需要有关id过滤器的帮助

时间:2014-07-20 20:13:45

标签: elasticsearch

我是Elasticsearch的新手。我有一个映射,其中包含以下字段:

{
  "book": {
    "book": {
      "dynamic": "false",
      "_source": {
        "enabled": true
      },
      "_id": {
        "path": "id"
      },
      "properties": {
        "id": {
          "type": "long",
          "store": "yes",
          "index": "not_analyzed",
          "include_in_all": false
        }
      }
    }
  }
}

我可以创建索引并添加文档。但是,当我运行查询时:

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {}
      },
      "filter": {
        "ids": {
          "type": "long",
          "values" : [10]
        }
      }
    }
  }
}

它什么都不返回(索引有一个id = 10的文档)。我对this link感到困惑:

有人可以开导我这个吗?我做错了什么?

1 个答案:

答案 0 :(得分:7)

我明白了。使用id过滤器的正确方法如下:

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {}
      },
      "filter": {
        "ids": {
          "type": "book",
          "values" : [10]
        }
      }
    }
  }
}

type参数应该是文档类型,不是id字段的类型。 希望这有助于其他人。