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');
|
$startDate = $request->get('start_date');
|
||||||
$endDate = $request->get('end_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)) {
|
if (!is_null($letter)) {
|
||||||
$results = $results
|
$results = $results
|
||||||
@ -285,6 +264,28 @@ class SearchQueryBuilderAnime implements SearchQueryBuilderInterface
|
|||||||
->orderBy($orderBy, $sort ?? 'asc');
|
->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;
|
return $results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +40,22 @@ class SearchQueryBuilderCharacter implements SearchQueryBuilderInterface
|
|||||||
$sort = self::mapSort($request->get('sort'));
|
$sort = self::mapSort($request->get('sort'));
|
||||||
$letter = $request->get('letter');
|
$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)) {
|
if (!empty($query) && is_null($letter)) {
|
||||||
|
|
||||||
// $results = $results
|
// $results = $results
|
||||||
@ -59,22 +75,6 @@ class SearchQueryBuilderCharacter implements SearchQueryBuilderInterface
|
|||||||
->orderBy('score', ['$meta' => 'textScore']);
|
->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;
|
return $results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,26 +88,6 @@ class SearchQueryBuilderManga implements SearchQueryBuilderInterface
|
|||||||
$startDate = $request->get('start_date');
|
$startDate = $request->get('start_date');
|
||||||
$endDate = $request->get('end_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)) {
|
if (!is_null($letter)) {
|
||||||
$results = $results
|
$results = $results
|
||||||
->where('title', 'like', "{$letter}%");
|
->where('title', 'like', "{$letter}%");
|
||||||
@ -249,6 +229,26 @@ class SearchQueryBuilderManga implements SearchQueryBuilderInterface
|
|||||||
->orderBy($orderBy, $sort ?? 'asc');
|
->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;
|
return $results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,6 +41,21 @@ class SearchQueryBuilderPeople implements SearchQueryBuilderInterface
|
|||||||
$sort = self::mapSort($request->get('sort'));
|
$sort = self::mapSort($request->get('sort'));
|
||||||
$letter = $request->get('letter');
|
$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)) {
|
if (!empty($query) && is_null($letter)) {
|
||||||
|
|
||||||
// $results = $results
|
// $results = $results
|
||||||
@ -62,21 +77,6 @@ class SearchQueryBuilderPeople implements SearchQueryBuilderInterface
|
|||||||
->orderBy('score', ['$meta' => 'textScore']);
|
->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;
|
return $results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user