Mientras R-Trees en general, puede indexar datos con un número arbitrario de dimensiones, MySQL las habilidades espaciales solo se limitan a Geometry tipos (2 dimensiones).
Si tus vectores son 2 -dimensional y puede normalizarlos y luego hacer lo siguiente:
- Divida el círculo en dos veces la cantidad de ángulos que coincidan con sus diferencias
- Encuentra el
MBRde vectores con diferencia de coseno dada desde el centro de cada sector - Encuentre todos los vectores dentro del
MBR - Haga el filtrado fino para obtener la diferencia exacta.
En este caso, sin embargo, será mejor precacular el ángulo del valor e indexarlo con un B-Tree simple. índice.