Skip to content

Commit 1549713

Browse files
committed
adding search performed event
1 parent 395dff3 commit 1549713

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

src/Engines/TNTSearchEngine.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Illuminate\Support\Facades\DB;
88
use Laravel\Scout\Builder;
99
use Laravel\Scout\Engines\Engine;
10+
use TeamTNT\Scout\Events\SearchPerformed;
1011
use TeamTNT\TNTSearch\Exceptions\IndexNotFoundException;
1112
use TeamTNT\TNTSearch\TNTSearch;
1213

@@ -161,9 +162,14 @@ protected function performSearch(Builder $builder, array $options = [])
161162
);
162163
}
163164
if (isset($this->tnt->config['searchBoolean']) ? $this->tnt->config['searchBoolean'] : false) {
164-
return $this->tnt->searchBoolean($builder->query, $limit);
165+
$res = $this->tnt->searchBoolean($builder->query, $limit);
166+
event(new SearchPerformed($builder, $res, true));
167+
return $res;
168+
165169
} else {
166-
return $this->tnt->search($builder->query, $limit);
170+
$res = $this->tnt->search($builder->query, $limit);
171+
event(new SearchPerformed($builder, $res));
172+
return $res;
167173
}
168174
}
169175

@@ -288,7 +294,7 @@ private function discardIdsFromResultSetByConstraints($builder, $searchResults)
288294

289295
$discardIds = $builder->model->newQuery()
290296
->select($qualifiedKeyName)
291-
->leftJoin(DB::raw('('.$sub->getQuery()->toSql().') as '. $builder->model->getConnection()->getTablePrefix() .'sub'), $subQualifiedKeyName, '=', $qualifiedKeyName)
297+
->leftJoin(DB::raw('('.$sub->getQuery()->toSql().') as '.$builder->model->getConnection()->getTablePrefix().'sub'), $subQualifiedKeyName, '=', $qualifiedKeyName)
292298
->addBinding($sub->getQuery()->getBindings(), 'join')
293299
->whereIn($qualifiedKeyName, $searchResults)
294300
->whereNull($subQualifiedKeyName)

src/Events/SearchPerformed.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace TeamTNT\Scout\Events;
4+
5+
class SearchPerformed
6+
{
7+
public function __construct($builder, $results, $isBooleanSearch = false)
8+
{
9+
$this->query = $builder->query;
10+
$this->isBooleanSearch = (int) $isBooleanSearch;
11+
$this->indexName = $builder->index ?: $builder->model->searchableAs();
12+
$this->model = get_class($builder->model);
13+
$this->ids = $results['ids'];
14+
$this->hits = $results['hits'];
15+
$this->execution_time = str_replace(" ms", "", $results['execution_time']);
16+
$this->driver = config('scout.driver');
17+
}
18+
}

0 commit comments

Comments
 (0)