mirror of
https://codeberg.org/demostf/api.git
synced 2026-06-03 18:04:08 +02:00
use materialized view for user search
This commit is contained in:
parent
c495a55504
commit
c086bb72ca
1 changed files with 4 additions and 6 deletions
|
|
@ -86,12 +86,10 @@ class UserProvider extends BaseProvider {
|
||||||
|
|
||||||
$query = $this->getQueryBuilder();
|
$query = $this->getQueryBuilder();
|
||||||
$nameParameter = $query->createNamedParameter($search, \PDO::PARAM_STR, ':query');
|
$nameParameter = $query->createNamedParameter($search, \PDO::PARAM_STR, ':query');
|
||||||
$query->select('user_id', 'p.name', 'count(demo_id) AS count', 'steamid', "1 - (p.name <-> $nameParameter) AS sim")
|
$query->select('user_id', 'name', 'count', 'steamid', "1 - (p.name <-> $nameParameter) AS sim")
|
||||||
->from('players', 'p')
|
->from('name_list')
|
||||||
->innerJoin('p', 'users', 'u', $query->expr()->eq('u.id', 'p.user_id'))
|
->where($query->expr()->comparison('name', '%', $nameParameter))
|
||||||
->where($query->expr()->comparison('p.name', '%', $nameParameter))
|
->orWhere($query->expr()->comparison('name', '~*', $nameParameter))
|
||||||
->orWhere($query->expr()->comparison('p.name', '~*', $nameParameter))
|
|
||||||
->groupBy('p.name', 'user_id', 'steamid')
|
|
||||||
->orderBy('count', 'DESC')
|
->orderBy('count', 'DESC')
|
||||||
->setMaxResults(100);
|
->setMaxResults(100);
|
||||||
$result = $query->execute();
|
$result = $query->execute();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue