Hola Naica:
No entiendo bien a qué te refieres con eso de "combinar a ambos algoritmos", supongo que lo que intentas hacer es utilizar dos criterios de ordenación, es correcto?
Vayamos por partes, la ordenación se realiza de manera jerárquica es decir, puedes colocar distintos criterios o campos, separados por comas:
Código:
ORDER BY campo1, campo2, INSTR(cadena, 'ALGO')....
Esto quiere decir que los registros se ordenarán en primer lugar por el campo1, una vez ordenados todos los registros por este campo se procederá a ordenar por el campo2 y así sucesivamente... observa este ejemplo:
Código MySQL:
Ver original+------+--------+--------+--------+
| id | campo1 | campo2 | campo3 |
+------+--------+--------+--------+
| 1 | 1 | 10 | a |
| 2 | 2 | 9 | b |
| 3 | 3 | 5 | c |
| 4 | 1 | 9 | d |
| 5 | 2 | 4 | e |
| 6 | 3 | 1 | f |
| 7 | 1 | 2 | g |
| 8 | 2 | 3 | h |
| 9 | 3 | 5 | i |
+------+--------+--------+--------+
+------+--------+--------+--------+
| id | campo1 | campo2 | campo3 |
+------+--------+--------+--------+
| 7 | 1 | 2 | g |
| 4 | 1 | 9 | d |
| 1 | 1 | 10 | a |
| 8 | 2 | 3 | h |
| 5 | 2 | 4 | e |
| 2 | 2 | 9 | b |
| 6 | 3 | 1 | f |
| 3 | 3 | 5 | c |
| 9 | 3 | 5 | i |
+------+--------+--------+--------+
De primera vista podrías pensar que los datos de la columna tres están desordenados, pero no es así, sino que dependen de los dos primeros campos... En los últimos dos registros, al haber paridad en los dos primeros criterios de ordenación entonces si se ordena por el campo3.
Ahora, volviendo a tu caso, no sé qué es exactamente lo que pretendes, pero podrías hacerlo así:
Código MySQL:
Ver originalSELECT uDR.webTitulo
, uDR.webDescripcion
, uDR.webkeywords
, uDR.weburl
, SUM(uDR.priority
) AS SPriority
( SELECT s1.webTitulo
, s1.webDescripcion
, s1.weburl
, s1.webkeywords
, 4 AS priority
FROM webs s1
WHERE MATCH (webTitulo
) AGAINST
('recetas de cocina') SELECT s2.webTitulo
, s2.webDescripcion
, s2.weburl
, s2.webkeywords
, 2 AS priority
FROM webs s2
WHERE MATCH (webkeywords
) AGAINST
('recetas de cocina*' IN BOOLEAN MODE
) SELECT s3.webTitulo
, s3.webDescripcion
, s3.weburl
, s3.webkeywords
, 1 AS priority
FROM webs s3
WHERE MATCH (webDescripcion
) AGAINST
('recetas de cocina') SELECT s4.webTitulo
, s4.webDescripcion
, s4.weburl
, s4.webkeywords
, 1 AS priority
FROM webs s4
WHERE MATCH (weburl
) AGAINST
('recetas de cocina') ) uDR
GROUP BY uDR.webTitulo
, uDR.weburl
, uDR.webDescripcion
, uDR.webkeywords
ORDER BY SPriority
DESC, IF(INSTR(uDR.webTitulo
, 'recetas de cocina'), INSTR(uDR.webTitulo
, 'recetas de cocina'), 65535)
Tu consulta tenía paréntesis completamente inutiles, además de algunos errores con las comillas simples, dale un vistazo para ver si es lo que necesitas y si no es así, postea algunos datos de ejemplo y que es lo que esperas como salida para poder tratar de ayudarte.
Saludos
Leo.