Skip to content

Commit

Permalink
support for tntsearch 4
Browse files Browse the repository at this point in the history
  • Loading branch information
nticaric committed Jul 14, 2023
1 parent 93bd3fb commit 984ab4c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 18 deletions.
17 changes: 10 additions & 7 deletions src/Engines/TNTSearchEngine.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ public function update($models)
$index = $this->tnt->getIndex();
$index->setPrimaryKey($models->first()->getKeyName());

$index->indexBeginTransaction();
$models->each(function ($model) use ($index) {
$array = $model->toSearchableArray();

Expand All @@ -71,7 +70,6 @@ public function update($models)
$index->insert($array);
}
});
$index->indexEndTransaction();
}

/**
Expand Down Expand Up @@ -317,7 +315,13 @@ public function initIndex($model)
{
$indexName = $model->searchableAs();

if (!file_exists($this->tnt->config['storage']."/{$indexName}.index")) {
if ($this->tnt->config['engine'] == "TeamTNT\TNTSearch\Engines\RedisEngine") {
$indexer->setDatabaseHandle($model->getConnection()->getPdo());
$indexer->setPrimaryKey($model->getKeyName());
return;
}

if (!file_exists($this->tnt->config['storage'] . "/{$indexName}.index")) {
$indexer = $this->tnt->createIndex("$indexName.index");
$indexer->setDatabaseHandle($model->getConnection()->getPdo());
$indexer->setPrimaryKey($model->getKeyName());
Expand All @@ -342,15 +346,15 @@ public function initIndex($model)
private function discardIdsFromResultSetByConstraints($builder, $searchResults)
{
$qualifiedKeyName = $builder->model->getQualifiedKeyName(); // tableName.id
$subQualifiedKeyName = 'sub.'.$builder->model->getKeyName(); // sub.id
$subQualifiedKeyName = 'sub.' . $builder->model->getKeyName(); // sub.id

$sub = $this->getBuilder($builder->model)->whereIn(
$qualifiedKeyName, $searchResults
); // sub query for left join

$discardIds = $builder->model->newQuery()
->select($qualifiedKeyName)
->leftJoin(DB::raw('('.$sub->getQuery()->toSql().') as '.$builder->model->getConnection()->getTablePrefix().'sub'), $subQualifiedKeyName, '=', $qualifiedKeyName)
->leftJoin(DB::raw('(' . $sub->getQuery()->toSql() . ') as ' . $builder->model->getConnection()->getTablePrefix() . 'sub'), $subQualifiedKeyName, '=', $qualifiedKeyName)
->addBinding($sub->getQuery()->getBindings(), 'join')
->whereIn($qualifiedKeyName, $searchResults)
->whereNull($subQualifiedKeyName)
Expand Down Expand Up @@ -459,13 +463,12 @@ private function applyOrders($builder)
public function flush($model)
{
$indexName = $model->searchableAs();
$pathToIndex = $this->tnt->config['storage']."/{$indexName}.index";
$pathToIndex = $this->tnt->config['storage'] . "/{$indexName}.index";
if (file_exists($pathToIndex)) {
unlink($pathToIndex);
}
}


/**
* Create a search index.
*
Expand Down
22 changes: 11 additions & 11 deletions src/TNTSearchScoutServiceProvider.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php namespace TeamTNT\Scout;

use TeamTNT\Scout\Console\StatusCommand;
use TeamTNT\TNTSearch\TNTSearch;
use Laravel\Scout\EngineManager;
use Laravel\Scout\Builder;
use Illuminate\Support\ServiceProvider;
use Laravel\Scout\Builder;
use Laravel\Scout\EngineManager;
use TeamTNT\Scout\Console\ImportCommand;
use TeamTNT\Scout\Console\StatusCommand;
use TeamTNT\Scout\Engines\TNTSearchEngine;
use TeamTNT\TNTSearch\TNTSearch;

class TNTSearchScoutServiceProvider extends ServiceProvider
{
Expand Down Expand Up @@ -40,23 +40,23 @@ public function boot()
]);
}

Builder::macro('constrain', function($constraints) {
Builder::macro('constrain', function ($constraints) {
$this->constraints = $constraints;
return $this;
});
}

protected function setFuzziness($tnt)
{
$tnt->fuzziness = config('scout.tntsearch.fuzziness', $tnt->fuzziness);
$tnt->fuzzy_distance = config('scout.tntsearch.fuzzy.distance', $tnt->fuzzy_distance);
$tnt->fuzzy_prefix_length = config('scout.tntsearch.fuzzy.prefix_length', $tnt->fuzzy_prefix_length);
$tnt->fuzzy_max_expansions = config('scout.tntsearch.fuzzy.max_expansions', $tnt->fuzzy_max_expansions);
$tnt->fuzzy_no_limit = config('scout.tntsearch.fuzzy.no_limit', $tnt->fuzzy_no_limit);
$tnt->setFuzziness(config('scout.tntsearch.fuzziness', $tnt->getFuzziness()));
$tnt->setFuzzyDistance(config('scout.tntsearch.fuzzy.distance', $tnt->getFuzzyDistance()));
$tnt->setFuzzyPrefixLength(config('scout.tntsearch.fuzzy.prefix_length', $tnt->getFuzzyPrefixLength()));
$tnt->setFuzzyMaxExpansions(config('scout.tntsearch.fuzzy.max_expansions', $tnt->getFuzzyMaxExpansions()));
$tnt->setFuzzyNoLimit(config('scout.tntsearch.fuzzy.no_limit', $tnt->getFuzzyNoLimit()));
}

protected function setAsYouType($tnt)
{
$tnt->asYouType = config('scout.tntsearch.asYouType', $tnt->asYouType);
$tnt->setAsYouType(config('scout.tntsearch.asYouType', $tnt->getAsYouType()));
}
}

0 comments on commit 984ab4c

Please sign in to comment.