$array = json_decode($json, TRUE);
{
"query": {
"bool": {
"filter": {
"geo_bounding_box": {
"location": {
"top_left": {
"lat": 40.3857421875,
"lon": 49.8779296875
},
"bottom_right": {
"lat": 40.3802490234375,
"lon": 49.866943359375
}
}
}
}
}
},
"size": 0
}
Geohash length Cell width Cell height
1 ≤ 5,000km × 5,000km
2 ≤ 1,250km × 625km
3 ≤ 156km × 156km
4 ≤ 39.1km × 19.5km
5 ≤ 4.89km × 4.89km
6 ≤ 1.22km × 0.61km
7 ≤ 153m × 153m
8 ≤ 38.2m × 19.1m
9 ≤ 4.77m × 4.77m
10 ≤ 1.19m × 0.596m
11 ≤ 149mm × 149mm
12 ≤ 37.2mm × 18.6mm
{
"query": {
"bool": {
"must": {
"match_all": {
"boost": 1
}
},
"filter": {
"geo_distance": {
"distance": "1.2km",
"location": {
"lat": "40.382995605469",
"lon": "49.872436523438"
}
}
}
}
},
"size": 0
}
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
$data = [
0 => (object) [
'response' => (object) [
'count' => 5645,
'users' => [
0 => (object) [
'uid' => 1,
'first_name' => 'first_name',
'last_name' => 'last_name',
'sex' => 1,
'bdate' => 26.1,
]
]
]
]
];
if(isset($data[0]->response->users) && is_iterable($data[0]->response->users))
{
foreach ($data[0]->response->users as $user)
{
echo $user->first_name . "\n";
}
}
Сколько памяти, сколько процессорного времени, каким образом диск задействуется.
Я уверен что вы увидите узкие места, которые можно серьезно оптимизировать.
После этого, можно сильно снизить нагрузку на чтение БД путем кеширования данных.
Просто создавайте кеш в APCU или Redis или еще где... храните там готовые к употреблению данные.
Только тут надо подумать над инвалидацией кеша...