次のスクリプトを使用して、ドキュメントを取得するサーバー側のランダムな順序を作成します。
curl -POST 'http://localhost:9200/my_index/my_type/_search' -d '
{
"sort": {
"_script": {
"params": {},
"type": "number",
"order": "desc",
"script": "Math.random()"
}
},
"query": {
"match_all": {}
},
"fields": [
"field1",
"field2"
]
}'
このスクリプトは、通常の検索を使用して正常に機能します。
しかし、これをスクロールしようとするとsearch_type=scan
、何らかの理由でスコアを使用すると常に 0.0 のようで、元の挿入順序が取得されます。
私がフォローしている順序は、ドキュメントに従っています。まず、次のように呼び出します。
curl -POST 'http://localhost:9200/my_index/my_type/_search?pretty=true&search_type=scan&scroll=10m&size=4' -d '
{
"sort": {
"_script": {
"params": {},
"type": "number",
"order": "desc",
"script": "Math.random()"
}
},
"query": {
"match_all": {}
},
"fields": [
"field1",
"field2"
]
}'
その後:
curl -XGET 'http://localhost:9200/_search/scroll?pretty=true&scroll=10m&scroll_id=<the-previously-returned-id-here>
私は何を間違っていますか?