diff --git a/Blacklight/NameFixer.php b/Blacklight/NameFixer.php index 4eda71b39..acad104af 100755 --- a/Blacklight/NameFixer.php +++ b/Blacklight/NameFixer.php @@ -1034,12 +1034,14 @@ class NameFixer $taggedRelease->update($updateColumns); $taggedRelease->retag($determinedCategory['tags']); if (config('nntmux.elasticsearch_enabled') === true) { + $newTitleDotless = str_replace(['.', '-'], ' ', $newTitle); $data = [ 'body' => [ 'doc' => [ 'id' => $release->releases_id, 'name' => $release->name, 'searchname' => $newTitle, + 'plainsearchname' => $newTitleDotless, 'fromname' => $release->fromname, ], 'doc_as_upsert' => true, @@ -1080,12 +1082,14 @@ class NameFixer ->groupBy('releases.id') ->first(); if ($new !== null) { + $newTitleDotless = str_replace(['.', '-'], ' ', $newTitle); $data = [ 'body' => [ 'doc' => [ 'id' => $release->releases_id, 'name' => $new->name, 'searchname' => $newTitle, + 'plainsearchname' => $newTitleDotless, 'fromname' => $new->fromname, 'filename' => ! empty($new->filename) ? $new->filename : '', ], diff --git a/Blacklight/Releases.php b/Blacklight/Releases.php index ccb85d0d1..f048133e5 100644 --- a/Blacklight/Releases.php +++ b/Blacklight/Releases.php @@ -585,9 +585,8 @@ class Releases extends Release return $value !== -1; }); - $fields = $phrases = []; + $phrases = []; foreach ($searchFields as $key => $value) { - $fields[] = $key; $phrases[] = $value; } @@ -599,7 +598,7 @@ class Releases extends Release 'query' => [ 'query_string' => [ 'query' => implode(' ', $phrases), - 'fields' => $fields, + 'fields' => ['searchname', 'plainsearchname', 'fromname', 'filename', 'name'], 'analyze_wildcard' => true, 'default_operator' => 'and', ], @@ -745,7 +744,7 @@ class Releases extends Release 'query' => [ 'query_string' => [ 'query' => $searchName, - 'fields' => ['searchname'], + 'fields' => ['searchname', 'plainsearchname'], 'analyze_wildcard' => true, 'default_operator' => 'and', ], @@ -936,7 +935,7 @@ class Releases extends Release 'query' => [ 'query_string' => [ 'query' => $name, - 'fields' => ['searchname'], + 'fields' => ['searchname', 'plainsearchname'], 'analyze_wildcard' => true, 'default_operator' => 'and', ], @@ -1130,7 +1129,7 @@ class Releases extends Release 'query' => [ 'query_string' => [ 'query' => $name, - 'fields' => ['searchname'], + 'fields' => ['searchname', 'plainsearchname'], 'analyze_wildcard' => true, 'default_operator' => 'and', ], @@ -1259,7 +1258,7 @@ class Releases extends Release 'query' => [ 'query_string' => [ 'query' => $name, - 'fields' => ['searchname'], + 'fields' => ['searchname', 'plainsearchname'], 'analyze_wildcard' => true, 'default_operator' => 'and', ], @@ -1387,7 +1386,7 @@ class Releases extends Release 'query' => [ 'query_string' => [ 'query' => $name, - 'fields' => ['searchname'], + 'fields' => ['searchname', 'plainsearchname'], 'analyze_wildcard' => true, 'default_operator' => 'and', ], diff --git a/Blacklight/processing/post/ProcessAdditional.php b/Blacklight/processing/post/ProcessAdditional.php index 1c5a1a784..16d4e0db1 100755 --- a/Blacklight/processing/post/ProcessAdditional.php +++ b/Blacklight/processing/post/ProcessAdditional.php @@ -1183,12 +1183,14 @@ class ProcessAdditional ->groupBy('releases.id') ->first(); if ($new !== null) { + $searchName = str_replace(['.', '-'], ' ', $new->searchname); $data = [ 'body' => [ 'doc' => [ 'id' => $this->_release->id, 'name' => $new->name, 'searchname' => $new->searchname, + 'plainsearchname' => $searchName, 'fromname' => $new->fromname, 'filename' => ! empty($new->filename) ? $new->filename : '', ], @@ -1764,12 +1766,14 @@ class ProcessAdditional $release->retag($newCat['tags']); if (config('nntmux.elasticsearch_enabled') === true) { + $newTitleDotless = str_replace(['.', '-'], ' ', $newTitle); $data = [ 'body' => [ 'doc' => [ 'id' => $this->_release->id, 'name' => $this->_release->name, 'searchname' => $newTitle, + 'plainsearchname' => $newTitleDotless, 'fromname' => $this->_release->fromname, ], 'doc_as_upsert' => true, diff --git a/app/Console/Commands/NntmuxResetDb.php b/app/Console/Commands/NntmuxResetDb.php index b0a684c1a..90b9e21f4 100644 --- a/app/Console/Commands/NntmuxResetDb.php +++ b/app/Console/Commands/NntmuxResetDb.php @@ -98,6 +98,35 @@ class NntmuxResetDb extends Command 'number_of_shards' => 2, 'number_of_replicas' => 0, ], + 'mappings' => [ + 'properties' => [ + 'id' => [ + 'type' => 'long', + 'index' => false, + ], + 'name' => ['type' => 'text'], + 'searchname' => [ + 'type' => 'text', + 'fields' => [ + 'sort' => [ + 'type' => 'keyword', + ], + ], + ], + 'plainsearchname' => [ + 'type' => 'text', + 'fields' => [ + 'sort' => [ + 'type' => 'keyword', + ], + ], + ], + 'fromname' => ['type' => 'text'], + 'filename' => ['type' => 'text'], + 'add_date' => ['type' => 'date', 'format' => 'yyyy-MM-dd HH:mm:ss'], + 'post_date' => ['type' => 'date', 'format' => 'yyyy-MM-dd HH:mm:ss'], + ], + ], ], ]; @@ -108,13 +137,31 @@ class NntmuxResetDb extends Command } $predb_index = [ 'index' => 'predb', - 'type' => 'predb', 'body' => [ 'settings' => [ 'number_of_shards' => 2, 'number_of_replicas' => 0, ], + 'mappings' => [ + 'properties' => [ + 'id' => [ + 'type' => 'long', + 'index' => false, + ], + 'title' => [ + 'type' => 'text', + 'fields' => [ + 'sort' => [ + 'type' => 'keyword', + ], + ], + ], + 'filename' => ['type' => 'text'], + 'source' => ['type' => 'text'], + ], + ], ], + ]; \Elasticsearch::indices()->create($predb_index); diff --git a/app/Models/Release.php b/app/Models/Release.php index 6a721f1fe..c2dcb0dbd 100644 --- a/app/Models/Release.php +++ b/app/Models/Release.php @@ -364,12 +364,14 @@ class Release extends Model ); if (config('nntmux.elasticsearch_enabled') === true) { + $searchNameDotless = str_replace(['.', '-'], ' ', $searchName); $data = [ 'body' => [ 'doc' => [ 'id' => $ID, 'name' => $name, 'searchname' => $searchName, + 'plainsearchname' => $searchNameDotless, 'fromname' => $fromName, ], 'doc_as_upsert' => true, diff --git a/app/Models/ReleaseFile.php b/app/Models/ReleaseFile.php index 8457ff334..b428dbc70 100644 --- a/app/Models/ReleaseFile.php +++ b/app/Models/ReleaseFile.php @@ -141,12 +141,14 @@ class ReleaseFile extends Model ->groupBy('releases.id') ->first(); if ($new !== null) { + $searchName = str_replace(['.', '-'], ' ', $new->searchname); $data = [ 'body' => [ 'doc' => [ 'id' => $id, 'name' => $new->name, 'searchname' => $new->searchname, + 'plainsearchname' => $searchName, 'fromname' => $new->fromname, 'filename' => ! empty($new->filename) ? $new->filename : '', ], diff --git a/misc/elasticsearch/create_es_indexes.php b/misc/elasticsearch/create_es_indexes.php index cea02c9c2..b76c65e26 100644 --- a/misc/elasticsearch/create_es_indexes.php +++ b/misc/elasticsearch/create_es_indexes.php @@ -27,6 +27,14 @@ $releases_index = [ ], ], ], + 'plainsearchname' => [ + 'type' => 'text', + 'fields' => [ + 'sort' => [ + 'type' => 'keyword', + ], + ], + ], 'fromname' => ['type' => 'text'], 'filename' => ['type' => 'text'], 'add_date' => ['type' => 'date', 'format' => 'yyyy-MM-dd HH:mm:ss'], diff --git a/misc/elasticsearch/populate_es_indexes.php b/misc/elasticsearch/populate_es_indexes.php index b26666fa2..f8a146539 100644 --- a/misc/elasticsearch/populate_es_indexes.php +++ b/misc/elasticsearch/populate_es_indexes.php @@ -70,6 +70,7 @@ function populate_indexes($table, $max) } switch ($table) { case 'releases': + $searchName = str_replace(['.', '-'], ' ', $row->searchname); $data['body'][] = [ 'index' => [ '_index' => 'releases', @@ -81,6 +82,7 @@ function populate_indexes($table, $max) 'id' => $row->id, 'name' => $row->name, 'searchname' => $row->searchname, + 'plainsearchname' => $searchName, 'fromname' => $row->fromname, 'filename' => $row->filename, 'add_date' => $row->adddate,