Skip to content

Commit a4011ba

Browse files
committed
Distinct search after keys & PIT ops
1 parent 249255b commit a4011ba

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

src/Eloquent/Builder.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ class Builder extends BaseEloquentBuilder
6868
// ES
6969
'todsl',
7070
'bucket',
71-
'bucketAggregation',
71+
'bucketaggregation',
72+
'openpit',
7273
];
7374

7475
/**

src/Query/Builder.php

+3
Original file line numberDiff line numberDiff line change
@@ -2288,6 +2288,9 @@ public function processedRaw($dsl): ?array
22882288

22892289
public function viaPit($pid, $afterKey): self
22902290
{
2291+
if (! $pid) {
2292+
$pid = $this->openPit();
2293+
}
22912294
$this->pitId = $pid;
22922295
$this->searchAfter = $afterKey;
22932296

src/Query/Processor.php

+6
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ public function processInsertGetId(Builder|BaseBuilder $query, $sql, $values, $s
5757

5858
public function processDistinctAggregations($result, $columns, $withCount): Collection
5959
{
60+
if (! empty($result['hits']['hits']) && is_array($result['hits']['hits'])) {
61+
$last = collect($result['hits']['hits'])->last();
62+
if (! empty($last['sort'])) {
63+
$this->query->getMetaTransfer()->set('after_key', $last['sort']);
64+
}
65+
}
6066
$keys = [];
6167
foreach ($columns as $column) {
6268
$keys[] = 'by_'.$column;

0 commit comments

Comments
 (0)