最近邻文档 ID 的偶尔变化与 Elasticsearch 的近似 k-NN 特征

问题描述 投票:0回答:0

我正在使用 Elasticsearch 的近似 k-NN 特征。

问题是,当我在同一个索引上重复查询时,有时最近的邻居文档 ID 是不同的。从我读到的关于 Lucene 的实现,似乎近似 k-NN 使用确定性算法,所以我很好奇为什么会出现这种行为。

这是一个示例查询:

GET /my-index/_search
{
  "size": 30,
  "knn": {
    "field": "knnVector",
    "k": 30,
    "num_candidates": 300,
    "query_vector": [
      // some 1024 dimensional vector
    ]
  }
}

以下是

my-index
的详情。

GET /_cat/shards/my-index
my-index 0 p STARTED 586611 4.5gb 10.46.32.153 instance-0000000001
my-index 0 r STARTED 586611 4.2gb 10.46.32.91  instance-0000000002
GET /my-index/_mapping
{
  "my-index": {
    "mappings": {
      "dynamic": "false",
      "date_detection": false,
      "numeric_detection": false,
      "properties": {
        "knnVector": {
          "type": "dense_vector",
          "dims": 1024,
          "index": true,
          "similarity": "dot_product"
        },
      }
    }
  }
}

如果有人知道为什么会出现这种行为以及如何使其具有确定性,请告诉我。

elasticsearch knn approximate-nn-searching
© www.soinside.com 2019 - 2024. All rights reserved.