我是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感到困惑:
有人可以开导我这个吗?我做错了什么?
答案 0 :(得分:7)
我明白了。使用id过滤器的正确方法如下:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"ids": {
"type": "book",
"values" : [10]
}
}
}
}
}
type参数应该是文档类型,不是id字段的类型。 希望这有助于其他人。