我有一个很大(几百万行)的向量数据集(即List< double []>),我需要找到最接近给定向量的1000个向量。
显而易见的解决方案是计算所有这些的距离,然后对数组进行排序,但我不确定这是否是考虑输出数组大小的正确方法。
也许我应该在计算距离的过程中经常删除最远的向量,因此它将始终是一小组最接近的向量而不是最后的大数组。
另一方面,看起来我仍然可以处理这个大小的数组而没有64位的内存溢出错误。
解决这个问题的成本较低的方法是什么?
如果正确的方法是在计算时设置一小组 - 这样做的正确方法是什么?
答案 0 :(得分:0)
如果将该数据集存储在数据库中,大多数现代DBMS都支持地理编码和远距离搜索。