Por ejemplo: busco "Cerebro", entonces el primer resultado debería ser el que tenga la palabra "Cerebro" en su título, más adelante el que tenga la palabra en la descripción y finalmente el que la tenga entre sus keywords.
Logré encontrarlo en python pero mi buscador está desarrollado en php y mysql, les dejo a continuación el código que encontré sobre lo que les hablo:
Código:
class searcher: def __init_ _(self,dbname): self.con=sqlite.connect(dbname) def __del_ _(self): self.con.close( )
Código:
Muchisimas gracias a todos! def getmatchrows(self,q): # Strings to build the query fieldlist='w0.urlid' tablelist='' clauselist='' wordids=[] # Split the words by spaces words=q.split(' ') tablenumber=0 for word in words: # Get the word ID wordrow=self.con.execute( "select rowid from wordlist where word='%s'" % word).fetchone( ) if wordrow!=None: wordid=wordrow[0] wordids.append(wordid) if tablenumber>0: tablelist+=',' clauselist+=' and ' clauselist+='w%d.urlid=w%d.urlid and ' % (tablenumber-1,tablenumber) fieldlist+=',w%d.location' % tablenumber tablelist+='wordlocation w%d' % tablenumber clauselist+='w%d.wordid=%d' % (tablenumber,wordid) tablenumber+=1 # Create the query from the separate parts fullquery='select %s from %s where %s' % (fieldlist,tablelist,clauselist) cur=self.con.execute(fullquery) rows=[row for row in cur] return rows,wordids