pdonadeo / e-uscito-joypad

Potente motore di ricerca per sapere se e quando è uscito Joypad, il podcast a tema videoludico di Matteo Bordone (Corri!), Francesco Fossetti (Salta!) e Alessandro Zampini (Spara! per finta). È possibile cercare i titoli recensiti nel podcast e sapere in quale episodio se ne è parlato ed in quale minuto.
https://www.euscitojoypad.it
MIT License
37 stars 5 forks source link

Commenti su funzionalita' ricerca #63

Closed glenacota closed 2 years ago

glenacota commented 2 years ago

(intanto grazie per questo progetto <3)

  1. (minor) il placeholder "Cerca un gioco..." nella barra di ricerca e' fuorviante: mi sembra di capire che la ricerca avvenga su tutti i campi, inclusa la descrizione, quindi e' possibile cercare per gioco, console, conferenza, sviluppatore, ... state considerando di limitare la ricerca ad un campo specifico in futuro? altrimenti, potreste suggerire altre chiavi di ricerca nel placeholder
  2. servono almeno 3 caratteri per inviare una ricerca al backend. Questo preclude ricerche di titoli tipo GTA, o a chiavi di ricerca tipo WII o E2 :P capisco la necessita' di limitare query al db, ma pensate sia un grosso problema?
  3. non chiedetemi perche' l'ho cercato, ma la chiave di ricerca "yadama" ritorna risultati che non contengono quella chiave (https://www.euscitojoypad.it/api/search-game/yadama). Non mi sembra che la ricerca fuzzy sia attivata (e.g., nessun idraulico in vista quando cerco https://www.euscitojoypad.it/api/search-game/mrio). Potrebbero esserci altri casi simili, qualche idea sul motivo?

ciao e grazie ;)

pdonadeo commented 2 years ago

Ciao @glenacota e grazie per i commenti. Rispondo per punti:

  1. il placeholder è corretto perché la ricerca avviene solo sul titolo. In futuro potremmo pensare ad una ricerca full text ed in quel caso vedremo come modificare il placeholder ma sarà una discussione molto più ampia perché bisognerà capire cosa l'utente effettivamente cerca sul sito e cosa si aspetta di trovare.

  2. sui 3 caratteri: siccome cerchiamo solo per titolo e siccome nel database i titoli più corti sono di 4 caratteri non ha molto senso cercare stringhe di 3 caratteri. Se lancio questa query:

    SELECT game.id, game.titolo
    FROM backoffice_videogame game
    ORDER BY length(game.titolo), game.id

    ottengo:

    id titolo
    65 ARMS
    132 ABZU
    238 Lake
    240 Prey
    247 Nioh
    250 RiME
    261 Silt
    266 Sifu
    323 P.T.
    366 Moss
    473 DOOM
    28 Drop7
    51 Erica
    ... ...

    Tra l'altro nota che i GTA non ci sono, sono tutti presenti col nome completo "Grand..."

    id titolo
    44 Grand Theft Auto V
    475 Grand Theft Auto III
    78 Grand Theft Auto Online
    314 Grand Theft Auto: The Trilogy – The Definitive Edition

    Per quanto riguarda gli eventi (esempio E3) ed in generale qualunque altra cosa di cui si sia parlato in Joypad, sono informazioni non indicizzate e non (ancora) ricercabili.

  3. Per "yadama" vedi i punti precedenti: non esiste nei titoli dei giochi. Per mrio hai invece ragione, è un caso limite di come è stata implementata la ricerca. Ho aperto una issue specifica per questa cosa che va risolta, in qualche modo, qui: #66

glenacota commented 2 years ago

grazie per le esaustive risposte :)

daro' un occhio a come e' implementata la ricerca, perche' in effetti sono stato tratto in inganno dai risultati :) ad esempio, https://staging.euscitojoypad.it/api/search-game/playstation ha come primo risultato l'episodio v9 che ha titolo "I giochi di società da fare con la PlayStation" ma nessun "playstation" nei campi giochi[].titolo (v9 e' il secondo risultato di ricerca nella release pubblica https://www.euscitojoypad.it/api/search-game/playstation)

pdonadeo commented 2 years ago

@glenacota nella ricerca viene utilizzata la funzione word_similarity di PostgreSQL del testo cercato all'interno del titolo del gioco. Vengono buttati via i risultati con similarity minore di 0.25.

Trovi la query completa qui.

Nel caso specifico della tua ricerca ("playstation") i risultati sono questi:

TITOLO GIOCO NUMERO EPISODIO SIMILARITY
PlayerUnknown’s Battlegrounds v12 0.33333334
SingStar Celebration v9 0.33333334
Operation: Tango 33 0.33333334
Alien: Isolation 40 0.33333334
Alien: Isolation 31 0.33333334
Astro's Playroom 13-2 0.33333334
PlayerUnknown’s Battlegrounds v6 0.33333334

Come vedi la similarity è molto bassa, al limite dello 0.25: in pratica sono rumore.

Come detto la ricerca va rivista perché così non va tanto bene.