Su problema se refiere al crear una consulta booleana prioridad y para este tipo de una consulta tiene que ir a fondo de búsqueda de Boole y ahora cómo la búsqueda booleana se realiza. En palabras simples déjame explicarte por qué se muestra el resultado del segundo número del resultado.
Una vez, primero debe entender qué significa booleano en la programación? Significa que cualquiera de las condiciones es verdadera o falsa i, e 0 a 1.
¿Permítanme explicar por qué se realiza la búsqueda booleana? Usted ha dado dos palabras. Vamos a buscar la fila por fila en modo booleano. El motor de búsqueda inicia y busca la fila por fila ahora donde se encuentre la Primera palabra, hace que el registro sea verdadero y dé como 1 a las filas en las que se encuentra la primera palabra y también prepara el número de palabras encontradas en la fila.
Ahora se mueve la siguiente palabra y hacer el mismo proceso da el registro verdadero y hace una lista de registros dondequiera que se encuentre la palabra y también prepara el número de palabras encontradas en la fila.
Ahora hay dos filas de resultados disponibles y están apalancadas y con la prioridad se da a las palabras con el número máximo de palabras y la fila aquí es el principal problema.
Ejemplo
Primera >>> nos totales. >> Segundo >> total nos. >>> >> Finales fila
Palabra >>> Resultados >> >>>> Palabra de las palabras>>> Resultados >> >> ninguna respuesta
1 2 >>>>>>>> >>>>>>>> 1 >>>>>>>>> 1 >>>>>>>> 1.33 >>>> 1 >>> 1.33
0 >>>>>>>> 0> >>>>>>> 2 >>>>>>>>> 2 >>>>>>>> 1.25 >>>> 2 >>> 1.25
0 >>>>>>>> 0 >> >>>>>> 1 >>>>>>>>> 0 >>>>>>>> 1,25 >>>> 3 >>> 1
Mientras discotecas dos listas de resultados cuando la verdadera añadió con falso, el resultado es verdadero, como si agregas 1 + 0 = 1 y los resultados son d con valor mayor que 1. Por lo tanto, al calificar la relevancia de las palabras encontradas, siempre se encuentra que el motor de búsqueda muestra los resultados donde encontró alguna palabra.
Las consultas de relevancia de puntuación se realizan en dos tipos o bien ignoran los puntajes que son iguales a uno y solo hacen cálculos en los registros cuya puntuación es mayor que 1. Segundo es realizar una consulta que nunca muestre los registros iguales uno. Al igual que en su caso se puede por lo que las cosas de abajo también para obtener los resultados correctos para dos palabras:
SELECT *, ((1.3 * (MATCH(title) AGAINST ('+term +term2' IN BOOLEAN MODE))) + (0.6 * (MATCH(text) AGAINST ('+term +term2' IN BOOLEAN MODE)))) AS score FROM results WHERE (MATCH(title, text) AGAINST ('+term +term2' IN BOOLEAN MODE)) HAVING relevance > 0 ORDER BY relevance DESC;
Yo sé que el uso de la palabra tiene compone la consulta poco lento, pero no hay otra solución disponible. Espero que esto resuelva tu consulta.