diff --git a/protected/humhub/modules/admin/controllers/InformationController.php b/protected/humhub/modules/admin/controllers/InformationController.php index 587391e3ec..e6d3ae0ad8 100644 --- a/protected/humhub/modules/admin/controllers/InformationController.php +++ b/protected/humhub/modules/admin/controllers/InformationController.php @@ -13,10 +13,10 @@ use humhub\modules\admin\components\Controller; use humhub\modules\admin\components\DatabaseInfo; use humhub\modules\admin\libs\HumHubAPI; use humhub\modules\admin\permissions\SeeAdminInformation; +use humhub\modules\content\jobs\SearchRebuildIndex; use humhub\modules\queue\driver\MySQL; use humhub\modules\queue\helpers\QueueHelper; use humhub\modules\queue\interfaces\QueueInfoInterface; -use humhub\modules\search\jobs\RebuildIndex; use humhub\services\MigrationService; use ReflectionClass; use ReflectionException; @@ -108,7 +108,7 @@ class InformationController extends Controller $databaseInfo = new DatabaseInfo(Yii::$app->db->dsn); - $rebuildSearchJob = new RebuildIndex(); + $rebuildSearchJob = new SearchRebuildIndex(); if (Yii::$app->request->isPost && Yii::$app->request->get('rebuildSearch') == 1) { Yii::$app->queue->push($rebuildSearchJob); } diff --git a/protected/humhub/modules/content/commands/SearchController.php b/protected/humhub/modules/content/commands/SearchController.php index e0f9634266..61fccaf3db 100644 --- a/protected/humhub/modules/content/commands/SearchController.php +++ b/protected/humhub/modules/content/commands/SearchController.php @@ -8,12 +8,13 @@ namespace humhub\modules\content\commands; +use humhub\modules\content\jobs\SearchRebuildIndex; use humhub\modules\content\models\Content; use humhub\modules\content\search\driver\AbstractDriver; use humhub\modules\content\search\driver\ZendLucenceDriver; use humhub\modules\content\search\SearchRequest; use humhub\modules\content\services\ContentSearchService; -use humhub\modules\search\jobs\RebuildIndex; +use humhub\modules\queue\helpers\QueueHelper; use humhub\modules\user\models\User; use Yii; @@ -55,8 +56,8 @@ class SearchController extends \yii\console\Controller */ public function actionQueueRebuild() { - $job = new RebuildIndex(); - if (\humhub\modules\queue\helpers\QueueHelper::isQueued($job)) { + $job = new SearchRebuildIndex(); + if (QueueHelper::isQueued($job)) { print "Rebuild process is already queued or running!\n"; return; } diff --git a/protected/humhub/modules/content/jobs/SearchRebuildIndex.php b/protected/humhub/modules/content/jobs/SearchRebuildIndex.php new file mode 100644 index 0000000000..9b05fdcf2f --- /dev/null +++ b/protected/humhub/modules/content/jobs/SearchRebuildIndex.php @@ -0,0 +1,35 @@ +each() as $content) { + (new ContentSearchService($content))->update(false); + } + } +} diff --git a/protected/humhub/modules/content/search/SearchRequest.php b/protected/humhub/modules/content/search/SearchRequest.php index f97fd44919..a84d55a2d7 100644 --- a/protected/humhub/modules/content/search/SearchRequest.php +++ b/protected/humhub/modules/content/search/SearchRequest.php @@ -11,7 +11,6 @@ use yii\web\IdentityInterface; class SearchRequest extends Model { - public const ORDER_BY_CREATION_DATE = 'content.created_at'; public const ORDER_BY_SCORE = 'score'; diff --git a/protected/humhub/modules/content/search/driver/ZendLucenceDriver.php b/protected/humhub/modules/content/search/driver/ZendLucenceDriver.php index d03174e607..d54d72ba30 100644 --- a/protected/humhub/modules/content/search/driver/ZendLucenceDriver.php +++ b/protected/humhub/modules/content/search/driver/ZendLucenceDriver.php @@ -53,7 +53,10 @@ class ZendLucenceDriver extends AbstractDriver array_map(function (ContentTag $tag) { return $tag->name; }, $content->tags)))); - $document->addField(Field::keyword('content.container_id', $content->container->id)); + + if ($content->container) { + $document->addField(Field::keyword('content.container_id', $content->container->id)); + } $document->addField(Field::keyword('content.created_at', strtotime($content->created_at))); $document->addField(Field::keyword('content.created_by', $content->created_by)); diff --git a/protected/humhub/modules/content/services/ContentSearchService.php b/protected/humhub/modules/content/services/ContentSearchService.php index 810c42c31e..231db0d234 100644 --- a/protected/humhub/modules/content/services/ContentSearchService.php +++ b/protected/humhub/modules/content/services/ContentSearchService.php @@ -35,7 +35,7 @@ class ContentSearchService $this->getSearchDriver()->update($this->content); } } else { - $this->delete(); + $this->delete($asActiveJob); } }