Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementare la ricerca di item #90

Open
gvaldambrini opened this issue May 4, 2017 · 3 comments
Open

Implementare la ricerca di item #90

gvaldambrini opened this issue May 4, 2017 · 3 comments
Assignees

Comments

@gvaldambrini
Copy link
Contributor

gvaldambrini commented May 4, 2017

Dovrà essere aggiunto un endpoint /items/db che implementi la ricerca degli item. All'endpoint dovrà essere passato un argomento query che sarà il testo da ricercare. Sarà necessario implementare la ricerca full text search su i campi name e description. Vedere la doc di peewee per un esempio di ricerca full text search

@GendoIkari
Copy link
Contributor

GendoIkari commented May 19, 2017

Proviamo un approccio piu' umile e piu' safe per noi. Implementiamo a mano la ricerca degli item per testo.
Oltre a query prendiamo anche un campo limit che sia il numero massimo di risultato che vogliamo.
Utilizzando un algoritmo di similarity tra stringhe come il SequenceMatcher di difflib facciamo il ranking degli item considerando la differenza tra la query e i campi name e description, e ritorniamo gli item migliori.

Le query sono:

/items/db?query=sedia&limit=20

request.args.get('query')
request.args.get('limit')

Con una query non vuota e un limit da 1 a 100.

@GendoIkari
Copy link
Contributor

GendoIkari commented May 19, 2017

Forse è meglio https://pypi.python.org/pypi/Distance/

distance.hamming("fat", "cat", normalized=True)

@GendoIkari
Copy link
Contributor

Aggiungiamo anche categoryai campi da cercare in fts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants