improve people query and indexing

This commit is contained in:
Irfan 2021-06-29 01:37:40 +05:00
parent afa3b64eba
commit 6e9b534ccf
2 changed files with 23 additions and 4 deletions

View File

@ -34,10 +34,11 @@ class SearchQueryBuilderPeople implements SearchQueryBuilderInterface
if (!empty($query) && is_null($letter)) {
$results = $results
->where('name', 'like', "%{$query}%")
->orWhere('given_name', 'like', "%{$query}%")
->orWhere('family_name', 'like', "%{$query}%")
->orWhere('alternate_names', 'like', "%{$query}%");
->whereRaw([
'$text' => [
'$search' => $query
]
]);
}
if (!is_null($letter)) {

View File

@ -29,6 +29,24 @@ class CreatePeopleTable extends Migration
$table->index('voice_acting_roles');
$table->index('anime_staff_positions');
$table->index('published_manga');
$table->index([
'name' => 'text',
'given_name' => 'text',
'family_name' => 'text',
'alternate_names' => 'text',
],
'people_search_index',
null,
[
'weights' => [
'name' => 50,
'given_name' => 10,
'family_name' => 10,
'alternate_names' => 1
],
'name' => 'people_search_index'
]
);
});
}