Como fazer: Classificação dos resultados da pesquisa

Tenho um problema de desenvolvimento de aplicativos da Web para o qual desenvolvi uma solução, mas estou tentando encontrar outras idéias que possam contornar alguns problemas de desempenho que estou vendo.

declaração do problema:

um usuário digita várias palavras-chave / tokenso aplicativo procura correspondências com os tokensprecisa de um resultado para cada tokenou seja, se uma entrada tiver 3 tokens, preciso do ID da entrada 3 vezesclassificar os resultadosatribuir X pontos para correspondência de tokenclassifique os IDs de entrada com base em pontosse os valores dos pontos forem iguais, use date para classificar os resultados

O que eu quero poder fazer, mas ainda não descobri, é enviar uma consulta que retorne algo semelhante aos resultados de um in (), mas retorne um ID de entrada duplicado para cada correspondência de token para cada ID de entrada verificado.

Existe uma maneira melhor de fazer isso do que o que estou fazendo, usando várias consultas individuais executando uma consulta por token? Se sim, qual é a maneira mais fácil de implementá-las?

editar
Eu já tokenizei as entradas, portanto, por exemplo, "ver execução pontual" tem um ID de entrada 1 e três tokens, 'ver', 'ponto', 'execução', e esses estão em uma tabela de token separada, com os IDs de entrada relevantes para eles, para que a tabela fique assim:

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

questionAnswers(4)

yourAnswerToTheQuestion