我的查询有一个奇怪的结果:它总共返回612个文档但没有命中。
这是查询:
{
"from": 900,
"size": 30,
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"user_id": "145698489"
}
}
],
"should": [
{
"bool": {
"must": [
{
"range": {
"date_created": {
"to": "2016-07-30T20:11:09.176-03:00",
"gte": "2016-07-07T23:39:45.530-03:00"
}
}
}
],
"must_not": [
{
"term": {
"resource.object.label": "hidden"
}
}
],
"should": []
}
}
]
}
}
}
}
}
这就是结果:
{
"_shards": {
"failed": 0,
"successful": 1,
"total": 1
},
"hits": {
"hits": [],
"max_score": 1,
"total": 612
},
"timed_out": false,
"took": 73
}
但如果我更改日期范围,我会得到正确的结果。
为什么ES会这样做?
答案 0 :(得分:6)
因为您将from
设置为900
。如果您的点击次数少于900
,则不会返回点击数。
答案 1 :(得分:0)
在查询中,您应尝试从0.设置。
同样重要的是要知道,ES最近在处理滚动方面发生了一些变化。因此,应该放置scrol的位置很重要,请尝试将一个next_scroll = results['_scroll_id']
设置在while循环之外,而另一滚动next_scroll = results['_scroll_id']
则放置在while循环代码行的末尾。我更改了scrol位置后,它对我有用。
答案 2 :(得分:0)
就我而言,这是因为我将限制设置为零,哈哈。