mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-29 01:08:56 +00:00
Improve ES search
This commit is contained in:
@@ -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 : '',
|
||||
],
|
||||
|
||||
@@ -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',
|
||||
],
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 : '',
|
||||
],
|
||||
|
||||
@@ -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'],
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user