|
2 | 2 |
|
3 | 3 | namespace TeamTNT\Scout\Engines;
|
4 | 4 |
|
5 |
| -use Laravel\Scout\Builder; |
6 |
| -use TeamTNT\TNTSearch\TNTSearch; |
7 |
| -use Laravel\Scout\Engines\Engine; |
8 |
| -use Illuminate\Support\Facades\DB; |
9 | 5 | use Illuminate\Database\Eloquent\Collection;
|
10 | 6 | use Illuminate\Database\Eloquent\SoftDeletes;
|
| 7 | +use Illuminate\Support\Facades\DB; |
| 8 | +use Laravel\Scout\Builder; |
| 9 | +use Laravel\Scout\Engines\Engine; |
11 | 10 | use TeamTNT\TNTSearch\Exceptions\IndexNotFoundException;
|
| 11 | +use TeamTNT\TNTSearch\TNTSearch; |
12 | 12 |
|
13 | 13 | class TNTSearchEngine extends Engine
|
14 | 14 | {
|
@@ -184,8 +184,8 @@ public function map(Builder $builder, $results, $model)
|
184 | 184 | $keys = collect($results['ids'])->values()->all();
|
185 | 185 |
|
186 | 186 | $builder = $this->getBuilder($model);
|
187 |
| - |
188 |
| - if($this->builder->queryCallback){ |
| 187 | + |
| 188 | + if ($this->builder->queryCallback) { |
189 | 189 | call_user_func($this->builder->queryCallback, $builder);
|
190 | 190 | }
|
191 | 191 |
|
@@ -225,7 +225,7 @@ public function getBuilder($model)
|
225 | 225 |
|
226 | 226 | $builder = $this->applyOrders($builder);
|
227 | 227 |
|
228 |
| - return $builder; |
| 228 | + return $builder; |
229 | 229 | }
|
230 | 230 |
|
231 | 231 | /**
|
@@ -279,16 +279,16 @@ public function initIndex($model)
|
279 | 279 | */
|
280 | 280 | private function discardIdsFromResultSetByConstraints($builder, $searchResults)
|
281 | 281 | {
|
282 |
| - $qualifiedKeyName = $builder->model->getQualifiedKeyName(); // tableName.id |
283 |
| - $subQualifiedKeyName = 'sub.' . $builder->model->getKeyName(); // sub.id |
| 282 | + $qualifiedKeyName = $builder->model->getQualifiedKeyName(); // tableName.id |
| 283 | + $subQualifiedKeyName = 'sub.'.$builder->model->getKeyName(); // sub.id |
284 | 284 |
|
285 | 285 | $sub = $this->getBuilder($builder->model)->whereIn(
|
286 | 286 | $qualifiedKeyName, $searchResults
|
287 | 287 | ); // sub query for left join
|
288 | 288 |
|
289 | 289 | $discardIds = $builder->model->newQuery()
|
290 | 290 | ->select($qualifiedKeyName)
|
291 |
| - ->leftJoin(DB::raw('(' . $sub->getQuery()->toSql() .') as sub'), $subQualifiedKeyName, '=', $qualifiedKeyName) |
| 291 | + ->leftJoin(DB::raw('('.$sub->getQuery()->toSql().') as sub'), $subQualifiedKeyName, '=', $qualifiedKeyName) |
292 | 292 | ->addBinding($sub->getQuery()->getBindings(), 'join')
|
293 | 293 | ->whereIn($qualifiedKeyName, $searchResults)
|
294 | 294 | ->whereNull($subQualifiedKeyName)
|
@@ -387,4 +387,19 @@ private function applyOrders($builder)
|
387 | 387 | return $builder->orderBy($column, $direction);
|
388 | 388 | }, $builder);
|
389 | 389 | }
|
| 390 | + |
| 391 | + /** |
| 392 | + * Flush all of the model's records from the engine. |
| 393 | + * |
| 394 | + * @param \Illuminate\Database\Eloquent\Model $model |
| 395 | + * @return void |
| 396 | + */ |
| 397 | + public function flush($model) |
| 398 | + { |
| 399 | + $indexName = $model->searchableAs(); |
| 400 | + $pathToIndex = $this->tnt->config['storage']."/{$indexName}.index"; |
| 401 | + if (file_exists($pathToIndex)) { |
| 402 | + unlink($pathToIndex); |
| 403 | + } |
| 404 | + } |
390 | 405 | }
|
0 commit comments