我基于fast-elasticsearch-vector-scoring (Elasticsearch 5.6) 为Elasticsearch 6.5创建了一个插件 这个插件使我可以在elasticsearch中计算KNN。
我有600万个维数为1200的向量。如果不使用Elasticsearch,则大约需要一分钟才能找到向量的KNN,但在Elasticsearch中,平均需要3秒钟。另外,如果我插入一个向量并搜索相同向量的KNN,我将找不到它。
时间上的差异以及我找不到插入的向量的事实,这意味着Elasticsearch在搜索之前先对文档进行采样。
它似乎适用于较少的文档,但是如果文档数增加,则文档将被采样。
当我查看_shards时,我会看到skipped = 0,但这不是真的
即使需要很长时间,我如何才能在所有文档上进行搜索?