1
如何從查詢的緩存副本中獲取分頁查詢中的數據?通過elasticsearch中的緩存搜索查詢進行分頁
搜索時,我們默認會得到10個結果(最大)。 我們也可以指定「大小」和「來自」。
但是,(在尋找一個簡單的查詢,這只是爲了簡單)我不知道,如果我拼版這樣:
curl -XPOST 'http://localhost:9200/index1/type1/_search' -d '{
"query": {
"match_all": {}
},
"from": 0,
"size": 10
}'
curl -XPOST 'http://localhost:9200/index1/type1/_search' -d '{
"query": {
"match_all": {}
},
"from": 10,
"size": 10
}'
curl -XPOST 'http://localhost:9200/index1/type1/_search' -d '{
"query": {
"match_all": {}
},
"from": 20,
"size": 10
}'
是,在每次執行服務器上的查詢,然後一「頁」返回?或者只是第一次緩存和執行查詢?
我可以看到一個用兩個usecases:
- 如果每次重新執行,這將反映對可能發生的文檔。
- 如果它被緩存,它會在服務器上創建更少的負載。具體來說,這可以用來創建從服務器到客戶端的某個「reducer」的「流」。 (在這種情況下,我希望查詢返回到下一頁的鏈接)。
我該如何執行這兩種情況。哪一個是默認的?
此外,如果我的查詢將運行排序腳本會發生什麼?例如:
curl -XPOST 'http://localhost:9200/index1/type1/_search' -d '{
"query": {
"match_all": {}
},
"sort": {
"_script": {
"script": "Math.random()",
"type": "number",
"order": "asc"
}
},
"from": 0,
"size": 10
}'
curl -XPOST 'http://localhost:9200/index1/type1/_search' -d '{
"query": {
"match_all": {}
},
"sort": {
"_script": {
"script": "Math.random()",
"type": "number",
"order": "asc"
}
},
"from": 10,
"size": 10
}'
將隨機排序應用兩次(所以我可能會得到一些項目出現在兩個查詢中)?如何防止並將查詢「鎖定」爲分頁?