对于常规查询大小,可以正常工作:
{
"query": {
"match_all": {}
},
"size": 2
}
返回2个结果。但是当我尝试通过geo_polygon添加过滤器时:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"geo_polygon": {
"coordinate": {
"points": {
"points": [
[
-84.293222919922,
33.865223592668
],
[
-84.293222919922,
33.632776407332
],
[
-84.482737080078,
33.632776407332
],
[
-84.482737080078,
33.865223592668
],
[
-84.293222919922,
33.865223592668
]
]
}
}
}
}
}
},
"size": 2
}
它总是返回10个结果,看起来完全忽略“size”参数。是否有任何特定的方法可以使“大小”适用于过滤查询?
的MacOS,
elasticsearch
version: {
number: 1.0.1
lucene_version: 4.6
}
答案 0 :(得分:5)
在Ubuntu上运行的1.2.1版中可以正常工作:
{
"from": 0,
"size": 100,
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
...blah...
}
}
}
}
答案 1 :(得分:0)
如果将size参数放在query参数中,这似乎也有效。
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
...blah...
}
},
"size": 100
}
}