Foros del Web » Programando para Internet » PHP »

Ordenar resultados por keyword

Estas en el tema de Ordenar resultados por keyword en el foro de PHP en Foros del Web. Hola a todos!, estoy intentando que los resultados de mi buscador se ordenen por la posición de la frase buscada (keyword). Por ejemplo: busco "Cerebro", ...
  #1 (permalink)  
Antiguo 09/10/2011, 19:53
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Ordenar resultados por keyword

Hola a todos!, estoy intentando que los resultados de mi buscador se ordenen por la posición de la frase buscada (keyword).

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:
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
Muchisimas gracias a todos!
  #2 (permalink)  
Antiguo 11/10/2011, 20:27
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Ordenar resultados por keyword

Yo creo que es con Like, despues con IF comparar si la frase se encuentra en el resultado y depende en que parte se le de un valor, entre Relevancia alta si está en titulo, media si está en la descripción y baja si esta en las keywords.

Pero no se bien como lograr que esto funcione, alguien sabe como armarlo?

Etiquetas: keyword, mysql, resultados, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.