【发布时间】:2021-03-16 08:17:41
【问题描述】:
我在我的laravel-app 中使用elasticsearch,我想从第三方 API 获取大量数据。我读过,我需要使用elasticsearch 提供的scroll API,但我真的不知道如何正确使用它。数据量约为200万条记录。那么如何获取呢?
这是我到目前为止所做的:
$query = '
{
"_source":[
"Company.*",
"Company.Metadata.*"
],
"query":{
"bool": {
"must": [
{
"match": {
"Company.Metadata.status": "active"
}
}
]
}
},
"size" : 1000
}
';
$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $query);
curl_setopt($curl, CURLOPT_URL, "http://thirdpartyapidomain.com/_search?scroll=1m");
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
));
curl_setopt($curl, CURLOPT_USERPWD, "user:mypassword");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$result = json_decode(curl_exec($curl));
curl_close($curl);
$hits = $result->hits->hits;
return $hits;
这给了我 1000 条记录和 scroll_id - 但下一步该怎么做?
请帮忙!
【问题讨论】:
标签: php laravel elasticsearch curl