mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
fix #211
This commit is contained in:
parent
2c242013bf
commit
30fd11349c
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user