Cómo: Clasificación de resultados de búsqueda

Tengo un problema de desarrollo de aplicaciones web para el que he desarrollado una solución, pero estoy tratando de encontrar otras ideas que puedan solucionar algunos problemas de rendimiento que estoy viendo.

planteamiento del problema:

un usuario ingresa varias palabras clave / tokensla aplicación busca coincidencias con los tokensnecesita un resultado para cada fichaes decir, si una entrada tiene 3 tokens, necesito la identificación de entrada 3 vecesclasificar los resultadosasignar X puntos para la coincidencia de fichasordenar los identificadores de entrada según los puntosSi los valores de los puntos son los mismos, use la fecha para ordenar los resultados

Lo que quiero poder hacer, pero no lo he descifrado, es enviar 1 consulta que devuelva algo similar a los resultados de un in (), pero devuelve una identificación de entrada duplicada para cada coincidencia de token para cada identificación de entrada marcada.

¿Hay una mejor manera de hacer esto que lo que estoy haciendo, de usar múltiples consultas individuales ejecutando una consulta por token? Si es así, ¿cuál es la forma más fácil de implementarlos?

editar
Ya he tokenizado las entradas, por lo que, por ejemplo, "ver spot run" tiene una identificación de entrada de 1, y tres tokens, 'see', 'spot', 'run', y están en una tabla de tokens separada, con identificadores de entrada relevantes para ellos, por lo que la tabla podría verse así:

'see', 1 
'spot', 1 
'run', 1 
'run', 2 
'spot', 3 

Respuestas a la pregunta(4)

Su respuesta a la pregunta