rangos over operaciones fechas ejemplos dense_rank con sql-server sql-server-2005 tsql freetext freetexttable

sql-server - operaciones - sql server rank() over



Por qué o cómo FREETEXTTABLE da un valor de rango más alto que otros (2)

Hay un procedimiento de tienda que usa FREETEXTTABLE dos veces en dos tablas y luego combina los resultados y devuelve los 50 principales.

El problema es que si hago una búsqueda de "Mujeres de Brewster", los resultados arrojan "Confesión de un ex doofus motha" con un rango de 143 en la tabla A y segundo "Mujeres de Brewster Place" con un rango de 102 en la tabla B .

¿Esto es por el conteo? (El total de resultados de la tabla A es 2399. El total de resultados de la tabla B es 3445).


La respuesta corta:

La clasificación de texto libre se basa en la fórmula de clasificación OKAPI BM25. Cada término de la consulta se clasifica y los valores se suman. Las consultas de texto libre agregarán palabras a la consulta a través de la generación flexional (formas derivadas de los términos de consulta originales); estas palabras se tratan como términos separados sin una ponderación o relación especial con las palabras con las que se generaron. Los sinónimos generados a partir de la característica del tesauro se tratan como términos separados, igualmente ponderados.

La respuesta mucho más larga y mucho más complicada se puede encontrar en el sitio de Microsoft, por supuesto. Para matemáticas avanzadas, haga clic aquí .


1) El archivo de ruido se limitó a unos pocos caracteres, lo que significa que la palabra "de" ahora se considera importante.

2) Los dos resultados de las tablas (conteo) sí importan, ya que la tabla más pequeña tendrá un mejor valor de peso. Esto sesgará el rango para ser más alto en una tabla más pequeña.

El enlace de Josef a MSDN fue excelente para descifrar cómo calcula el valor del rango.