From 084a1a2b8c55dc2c615c54851cc178049eb5c88b Mon Sep 17 00:00:00 2001 From: Arno Kaimbacher Date: Fri, 6 Sep 2019 16:35:43 +0200 Subject: [PATCH] - add SolrIndexBuilder artisan command - Sitelinkcontroller: data filter via raw sql - primary key for HasValue model - config/solarium.php new config values - bug on migration fie for document_xml_cache --- app/Console/Commands/SolrIndexBuilder.php | 60 ++++++++ app/Console/Kernel.php | 3 +- .../Frontend/SitelinkController.php | 27 ++-- app/Models/HashValue.php | 3 + composer.lock | 134 ++++++++++++------ config/solarium.php | 6 +- ...115137_create_document_xml_cache_table.php | 4 +- 7 files changed, 174 insertions(+), 63 deletions(-) create mode 100644 app/Console/Commands/SolrIndexBuilder.php diff --git a/app/Console/Commands/SolrIndexBuilder.php b/app/Console/Commands/SolrIndexBuilder.php new file mode 100644 index 0000000..af01c06 --- /dev/null +++ b/app/Console/Commands/SolrIndexBuilder.php @@ -0,0 +1,60 @@ +get(); + + // update statistics table + foreach ($datasets as $dataset) { + $datasetId = $dataset->id; + $time = new \Illuminate\Support\Carbon(); + $dataset->server_date_published = $time; + $dataset->save(); + // try { + // // Opus_Search_Service::selectIndexingService('onDocumentChange') + // $service = new SolariumAdapter("solr", config('solarium')); + // $service->addDatasetsToIndex($dataset); + // } catch (Exception $e) { + // Log::debug(__METHOD__ . ': ' . 'Indexing document ' . $datasetId . ' failed: ' . $e->getMessage()); + // } + } + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 80781e4..5574d4f 100755 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -13,7 +13,8 @@ class Kernel extends ConsoleKernel */ protected $commands = [ 'App\Console\Commands\Inspire', - 'App\Console\Commands\DatasetState' + 'App\Console\Commands\DatasetState', + 'App\Console\Commands\SolrIndexBuilder' ]; /** diff --git a/app/Http/Controllers/Frontend/SitelinkController.php b/app/Http/Controllers/Frontend/SitelinkController.php index d217cd3..6a35f5e 100644 --- a/app/Http/Controllers/Frontend/SitelinkController.php +++ b/app/Http/Controllers/Frontend/SitelinkController.php @@ -16,20 +16,21 @@ class SitelinkController extends Controller $select = DB::table('documents') ->where('server_state', 'LIKE', "%" . $serverState . "%"); - // $select - // ->select(DB::raw('EXTRACT(YEAR FROM server_date_published) as published_date')) - // // ->select(DB::raw("DATE_PART('year', server_date_published) as published_date")) - // // ->select(DB::raw("YEAR(server_date_published) AS published_date")) - // ->distinct(true); + $select + ->select(DB::raw('EXTRACT(YEAR FROM server_date_published) as published_date')) + // ->select(DB::raw("DATE_PART('year', server_date_published) as published_date")) + // ->select(DB::raw("YEAR(server_date_published) AS published_date")) + ->distinct(true); + $this->years = $select->pluck('published_date')->toArray(); - $years = $select->pluck('server_date_published')->toArray(); - $this->years = array_map(function ($pdate) { - $dateValue = strtotime($pdate); - if ($dateValue != false) { - $year = date("Y", $dateValue); - return $year; - } - }, $years); + // $years = $select->pluck('server_date_published')->toArray(); + // $this->years = array_map(function ($pdate) { + // $dateValue = strtotime($pdate); + // if ($dateValue != false) { + // $year = date("Y", $dateValue); + // return $year; + // } + // }, $years); $this->ids = array(); return view('frontend.sitelink.index')->with(['years' => $this->years, 'documents' => $this->ids]); } diff --git a/app/Models/HashValue.php b/app/Models/HashValue.php index f21a535..278843b 100644 --- a/app/Models/HashValue.php +++ b/app/Models/HashValue.php @@ -10,6 +10,9 @@ class HashValue extends Model protected $table = 'file_hashvalues'; public $timestamps = false; + protected $primaryKey = ['file_id', 'type']; + public $incrementing = false; + public function file() { return $this->belongsTo(File::class, 'file_id', 'id'); diff --git a/composer.lock b/composer.lock index 1add4df..9dd3206 100755 --- a/composer.lock +++ b/composer.lock @@ -8,26 +8,27 @@ "packages": [ { "name": "astrotomic/laravel-translatable", - "version": "v11.3.0", + "version": "v11.5.1", "source": { "type": "git", "url": "https://github.com/Astrotomic/laravel-translatable.git", - "reference": "9bf19f56d4e924f1381176a1dfc47d423948001d" + "reference": "078a22ea96582f7f518f5418ee7e57e3746fb032" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Astrotomic/laravel-translatable/zipball/9bf19f56d4e924f1381176a1dfc47d423948001d", - "reference": "9bf19f56d4e924f1381176a1dfc47d423948001d", + "url": "https://api.github.com/repos/Astrotomic/laravel-translatable/zipball/078a22ea96582f7f518f5418ee7e57e3746fb032", + "reference": "078a22ea96582f7f518f5418ee7e57e3746fb032", "shasum": "" }, "require": { - "illuminate/contracts": "5.6.*|5.7.*|5.8.*", - "illuminate/database": "5.6.*|5.7.*|5.8.*", - "illuminate/support": "5.6.*|5.7.*|5.8.*", + "illuminate/contracts": "5.6.* || 5.7.* || 5.8.* || ^6.0", + "illuminate/database": "5.6.* || 5.7.* || 5.8.* || ^6.0", + "illuminate/support": "5.6.* || 5.7.* || 5.8.* || ^6.0", "php": ">=7.1.3" }, "require-dev": { - "orchestra/testbench": "3.6.*|3.7.*|3.8.*" + "orchestra/testbench": "3.6.* || 3.7.* || 3.8.* || ^4.0", + "orchestra/testbench-core": "3.6.* || 3.7.* || 3.8.* || ^4.0" }, "type": "library", "extra": { @@ -49,15 +50,15 @@ "authors": [ { "name": "Tom Witkowski", - "role": "Developer", "email": "dev.gummibeer@gmail.com", - "homepage": "https://gummibeer.de" + "homepage": "https://gummibeer.de", + "role": "Developer" }, { "name": "Dimitrios Savvopoulos", - "role": "Developer", "email": "ds@dimsav.com", - "homepage": "http://dimsav.com" + "homepage": "http://dimsav.com", + "role": "Developer" } ], "description": "A Laravel package for multilingual models", @@ -67,32 +68,33 @@ "laravel", "translation" ], - "time": "2019-08-07T10:12:15+00:00" + "time": "2019-09-05T13:59:22+00:00" }, { "name": "davejamesmiller/laravel-breadcrumbs", - "version": "5.2.1", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/davejamesmiller/laravel-breadcrumbs.git", - "reference": "6465e8710341578092fdd8aea24319d4f53ab27c" + "reference": "1edeee4a77f467293aa5e5ea4a0b8f010216b8da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/davejamesmiller/laravel-breadcrumbs/zipball/6465e8710341578092fdd8aea24319d4f53ab27c", - "reference": "6465e8710341578092fdd8aea24319d4f53ab27c", + "url": "https://api.github.com/repos/davejamesmiller/laravel-breadcrumbs/zipball/1edeee4a77f467293aa5e5ea4a0b8f010216b8da", + "reference": "1edeee4a77f467293aa5e5ea4a0b8f010216b8da", "shasum": "" }, "require": { - "illuminate/support": "5.6.*|5.7.*|5.8.*", - "illuminate/view": "5.6.*|5.7.*|5.8.*", + "facade/ignition-contracts": "^1.0", + "illuminate/support": "^5.6|^6.0", + "illuminate/view": "^5.6|^6.0", "php": ">=7.1.3" }, "require-dev": { - "laravel/framework": "5.6.*|5.7.*|5.8.*", - "orchestra/testbench": "3.6.*|3.7.*|3.8.*", + "orchestra/testbench": "^3.6", "php-coveralls/php-coveralls": "^1.0", - "phpunit/phpunit": "7.*" + "phpunit/phpunit": "^7.0|^8.0", + "spatie/phpunit-snapshot-assertions": "^2.0" }, "type": "library", "extra": { @@ -125,7 +127,7 @@ "keywords": [ "laravel" ], - "time": "2019-02-27T13:09:37+00:00" + "time": "2019-09-03T15:24:57+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -447,6 +449,50 @@ ], "time": "2019-03-17T18:48:37+00:00" }, + { + "name": "facade/ignition-contracts", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/facade/ignition-contracts.git", + "reference": "f445db0fb86f48e205787b2592840dd9c80ded28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/f445db0fb86f48e205787b2592840dd9c80ded28", + "reference": "f445db0fb86f48e205787b2592840dd9c80ded28", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Facade\\IgnitionContracts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://flareapp.io", + "role": "Developer" + } + ], + "description": "Solution contracts for Ignition", + "homepage": "https://github.com/facade/ignition-contracts", + "keywords": [ + "contracts", + "flare", + "ignition" + ], + "time": "2019-08-30T14:06:08+00:00" + }, { "name": "felixkiss/uniquewith-validator", "version": "3.2.0", @@ -502,25 +548,25 @@ }, { "name": "fideloper/proxy", - "version": "4.2.0", + "version": "4.2.1", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "39a4c2165e578bc771f5dc031c273210a3a9b6d2" + "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/39a4c2165e578bc771f5dc031c273210a3a9b6d2", - "reference": "39a4c2165e578bc771f5dc031c273210a3a9b6d2", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/03085e58ec7bee24773fa5a8850751a6e61a7e8a", + "reference": "03085e58ec7bee24773fa5a8850751a6e61a7e8a", "shasum": "" }, "require": { - "illuminate/contracts": "~5.0|~6.0", + "illuminate/contracts": "^5.0|^6.0|^7.0", "php": ">=5.4.0" }, "require-dev": { - "illuminate/http": "~5.6|~6.0", - "mockery/mockery": "~1.0", + "illuminate/http": "^5.0|^6.0|^7.0", + "mockery/mockery": "^1.0", "phpunit/phpunit": "^6.0" }, "type": "library", @@ -552,7 +598,7 @@ "proxy", "trusted proxy" ], - "time": "2019-07-29T16:49:45+00:00" + "time": "2019-09-03T16:45:42+00:00" }, { "name": "jakub-onderka/php-console-color", @@ -1043,24 +1089,24 @@ }, { "name": "mcamara/laravel-localization", - "version": "1.3.20", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/mcamara/laravel-localization.git", - "reference": "af8f9f30488a83533dda3870fcc335b55cf964e0" + "reference": "7d6f2de6e020be33164da93af35e5f9bb52a3d89" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/af8f9f30488a83533dda3870fcc335b55cf964e0", - "reference": "af8f9f30488a83533dda3870fcc335b55cf964e0", + "url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/7d6f2de6e020be33164da93af35e5f9bb52a3d89", + "reference": "7d6f2de6e020be33164da93af35e5f9bb52a3d89", "shasum": "" }, "require": { - "laravel/framework": "~5.2.0||~5.3.0||~5.4.0||~5.5.0||~5.6.0||~5.7.0||~5.8.0", - "php": ">=7.0.0" + "laravel/framework": "~5.2.0||~5.3.0||~5.4.0||~5.5.0||~5.6.0||~5.7.0||~5.8.0||~6.0.0", + "php": ">=7.1.0" }, "require-dev": { - "orchestra/testbench-browser-kit": "~3.4|~3.8", + "orchestra/testbench-browser-kit": "~3.4|~3.8|~4.0", "phpunit/phpunit": "6.0.*|8.0.*" }, "suggest": { @@ -1101,20 +1147,20 @@ "localization", "php" ], - "time": "2019-06-28T16:04:56+00:00" + "time": "2019-09-06T07:38:59+00:00" }, { "name": "monolog/monolog", - "version": "1.24.0", + "version": "1.25.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" + "reference": "c5dcc05defbaf8780c728c1ea31b1a0704d44f56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c5dcc05defbaf8780c728c1ea31b1a0704d44f56", + "reference": "c5dcc05defbaf8780c728c1ea31b1a0704d44f56", "shasum": "" }, "require": { @@ -1179,7 +1225,7 @@ "logging", "psr-3" ], - "time": "2018-11-05T09:00:11+00:00" + "time": "2019-09-06T12:21:24+00:00" }, { "name": "nesbot/carbon", diff --git a/config/solarium.php b/config/solarium.php index 7804099..b56024a 100644 --- a/config/solarium.php +++ b/config/solarium.php @@ -3,11 +3,11 @@ return [ 'endpoint' => [ 'localhost' => [ - 'host' => env('SOLR_HOST', 'zontik.gba.geolba.ac.at'), + 'host' => env('SOLR_HOST', 'repository.geologie.ac.at'), 'port' => env('SOLR_PORT', '8983'), 'path' => env('SOLR_PATH', '/solr/'), - 'core' => env('SOLR_CORE', 'opus4') + 'core' => env('SOLR_CORE', 'rdr_data') ] ], - 'xsltfile' => "solr.xslt" + 'xsltfile' => "public/solr.xslt" ]; diff --git a/database/migrations/2019_08_29_115137_create_document_xml_cache_table.php b/database/migrations/2019_08_29_115137_create_document_xml_cache_table.php index 17165b4..57a5865 100644 --- a/database/migrations/2019_08_29_115137_create_document_xml_cache_table.php +++ b/database/migrations/2019_08_29_115137_create_document_xml_cache_table.php @@ -14,10 +14,10 @@ class CreateDocumentXmlCacheTable extends Migration public function up() { Schema::create('document_xml_cache', function (Blueprint $table) { - $table->integer('id')->primary(); + $table->integer('document_id')->primary(); $table->integer('xml_version'); $table->string('server_date_modified', 50)->nullable(); - $table->string('xml_data')->nullable(); + $table->text('xml_data')->nullable(); }); }