Verifica l'unicità del nuovo contenuto

-1

Sto lavorando su un sito di recensioni, dove c'è un problema minore con le recensioni duplicate quasi tra gli articoli. Solo poche parole sono cambiate. Sarebbe molto bello poter scoprire questi duplicati prima che siano approvati da un moderatore, e spero che qualcuno possa inserire la migliore strategia per arrivarci.

Il sito sta eseguendo Ruby on Rails su un database Postgres e usando Thinking Sphinx per la ricerca (tutto su Heroku), e finora l'opzione migliore che vedo è quella di estrarre tutte le recensioni dal db e utilizzare un modulo come amatch per confrontare le stringhe. Non molto efficiente, quindi in questo caso credo che dovrò limitare il numero / l'età delle recensioni per la scansione dei duplicati.

Qualcuno ha un'idea migliore?

    
posta rogerkk 15.11.2012 - 10:37
fonte

1 risposta

1

Potresti mettere insieme una query SQL utilizzando le proprie funzioni di corrispondenza delle stringhe: link

Dovresti unirti alla tabella contro se stesso (o prendere un prodotto incrociato facendo SELECT ... FROM table AS t1, table AS t2 ... ) e poi filtrare in base alle condizioni della stringa che desideri.

Ma, alla fine della giornata, Postgres dovrà eseguire scansioni di tabelle per produrre i risultati, quindi fai attenzione se hai un database di grandi dimensioni. Limita l'ambito, rimpicciolisci la query o eseguila in un momento non di punta.

    
risposta data 15.11.2012 - 11:03
fonte

Leggi altre domande sui tag