我正在查询我的弹性搜索服务器并将其限制为100个结果,但是可能会有5000多个结果,但是为了提高速度,我不想让试图大量发送它的用户连接超载。
data = es.search(index=case_to_view, size=100,body={
"query": {
"range" : {
"someRandomFIeld" : {
"gte" : 1,
}
}
}
})
这是做两件事,获取具有字段类型的结果,并且仅当该字段类型的值大于等于1时才获取结果。
data['hits']['total'] # 5089
如何让用户从同一查询中获得下一个结果,即后100个,前100个,等等
答案 0 :(得分:2)
您将要利用“来源”和“大小”属性。
您可以在7.0文档中看到它。
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-from-size.html
ex:
SELECT ?sLabel {
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:api "EntitySearch".
bd:serviceParam wikibase:endpoint "www.wikidata.org".
bd:serviceParam mwapi:search "natural language processing".
bd:serviceParam mwapi:language "en".
?item wikibase:apiOutputItem mwapi:item.
?num wikibase:apiOrdinal true.
}
?s wdt:P279|wdt:P31 ?item .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
}
ORDER BY ?num
LIMIT 10