This commit is contained in:
Irfan 2022-05-22 13:12:59 +05:00
parent 2c242013bf
commit 30fd11349c
4 changed files with 73 additions and 72 deletions

View File

@ -112,27 +112,6 @@ class SearchQueryBuilderAnime implements SearchQueryBuilderInterface
$startDate = $request->get('start_date');
$endDate = $request->get('end_date');
if (!empty($query) && is_null($letter)) {
// $results = $results
// ->where('title', 'like', "%{$query}%")
// ->orWhere('title_english', 'like', "%{$query}%")
// ->orWhere('title_japanese', 'like', "%{$query}%")
// ->orWhere('title_synonyms', 'like', "%{$query}%");
// @todo replace with elasticsearch or meilisearch
$results = $results
->whereRaw([
'$text' => [
'$search' => $query
],
], [
'score' => [
'$meta' => 'textScore'
]
])
->orderBy('score', ['$meta' => 'textScore']);
}
if (!is_null($letter)) {
$results = $results
@ -285,6 +264,28 @@ class SearchQueryBuilderAnime implements SearchQueryBuilderInterface
->orderBy($orderBy, $sort ?? 'asc');
}
if (!empty($query) && is_null($letter)) {
// $results = $results
// ->where('title', 'like', "%{$query}%")
// ->orWhere('title_english', 'like', "%{$query}%")
// ->orWhere('title_japanese', 'like', "%{$query}%")
// ->orWhere('title_synonyms', 'like', "%{$query}%");
// @todo replace with elasticsearch or meilisearch
$results = $results
->whereRaw([
'$text' => [
'$search' => $query
],
], [
'score' => [
'$meta' => 'textScore'
]
])
->orderBy('score', ['$meta' => 'textScore']);
}
return $results;
}

View File

@ -40,6 +40,22 @@ class SearchQueryBuilderCharacter implements SearchQueryBuilderInterface
$sort = self::mapSort($request->get('sort'));
$letter = $request->get('letter');
if (!is_null($letter)) {
$results = $results
->where('name', 'like', "{$letter}%");
}
if (empty($query) && is_null($orderBy)) {
$results = $results
->orderBy('mal_id');
}
if (!is_null($orderBy)) {
$results = $results
->orderBy($orderBy, $sort ?? 'asc');
}
if (!empty($query) && is_null($letter)) {
// $results = $results
@ -59,22 +75,6 @@ class SearchQueryBuilderCharacter implements SearchQueryBuilderInterface
->orderBy('score', ['$meta' => 'textScore']);
}
if (!is_null($letter)) {
$results = $results
->where('name', 'like', "{$letter}%");
}
if (empty($query) && is_null($orderBy)) {
$results = $results
->orderBy('mal_id');
}
if (!is_null($orderBy)) {
$results = $results
->orderBy($orderBy, $sort ?? 'asc');
}
return $results;
}

View File

@ -88,26 +88,6 @@ class SearchQueryBuilderManga implements SearchQueryBuilderInterface
$startDate = $request->get('start_date');
$endDate = $request->get('end_date');
if (!empty($query) && is_null($letter)) {
// $results = $results
// ->where('title', 'like', "%{$query}%")
// ->orWhere('title_english', 'like', "%{$query}%")
// ->orWhere('title_japanese', 'like', "%{$query}%")
// ->orWhere('title_synonyms', 'like', "%{$query}%");
$results = $results
->whereRaw([
'$text' => [
'$search' => $query
],
], [
'score' => [
'$meta' => 'textScore'
]
])
->orderBy('score', ['$meta' => 'textScore']);
}
if (!is_null($letter)) {
$results = $results
->where('title', 'like', "{$letter}%");
@ -249,6 +229,26 @@ class SearchQueryBuilderManga implements SearchQueryBuilderInterface
->orderBy($orderBy, $sort ?? 'asc');
}
if (!empty($query) && is_null($letter)) {
// $results = $results
// ->where('title', 'like', "%{$query}%")
// ->orWhere('title_english', 'like', "%{$query}%")
// ->orWhere('title_japanese', 'like', "%{$query}%")
// ->orWhere('title_synonyms', 'like', "%{$query}%");
$results = $results
->whereRaw([
'$text' => [
'$search' => $query
],
], [
'score' => [
'$meta' => 'textScore'
]
])
->orderBy('score', ['$meta' => 'textScore']);
}
return $results;
}

View File

@ -41,6 +41,21 @@ class SearchQueryBuilderPeople implements SearchQueryBuilderInterface
$sort = self::mapSort($request->get('sort'));
$letter = $request->get('letter');
if (!is_null($letter)) {
$results = $results
->where('name', 'like', "{$letter}%");
}
if (empty($query) && is_null($orderBy)) {
$results = $results
->orderBy('mal_id');
}
if (!is_null($orderBy)) {
$results = $results
->orderBy($orderBy, $sort ?? 'asc');
}
if (!empty($query) && is_null($letter)) {
// $results = $results
@ -62,21 +77,6 @@ class SearchQueryBuilderPeople implements SearchQueryBuilderInterface
->orderBy('score', ['$meta' => 'textScore']);
}
if (!is_null($letter)) {
$results = $results
->where('name', 'like', "{$letter}%");
}
if (empty($query) && is_null($orderBy)) {
$results = $results
->orderBy('mal_id');
}
if (!is_null($orderBy)) {
$results = $results
->orderBy($orderBy, $sort ?? 'asc');
}
return $results;
}