ElasticSearch中的_recovery_source字段是什么?



我在ElasticSearch中创建了两个索引,它们具有完全相同的映射,除了一个参数,其中一个映射将dense_vector_source中排除,而另一个没有:

"mappings": {
"_source": {"excludes": ["title_vector"]},
"properties": {
...}

然后我将相同的1_000文档索引到两个索引中:

vector_in_source       1000            0     21.5mb         21.5mb
no_vector_in_source    1000            0     21.2mb         21.2mb

当我奔跑

curl --location --request POST 'http://127.0.0.1:9200/index_name/_disk_usage?run_expensive_tasks=true

在两个索引上,我发现:

  1. 在源中的向量索引存储dense_vector作为源中的普通浮点数,正如我所期望的
  2. 索引不存储密集向量BUT它创建了一个名为_recovery_source的新字段,其大小等于作为普通浮点数存储的1000个1024 dim向量所占用的大小。

所以,即使我明确地排除密集向量从存储在弹性,他们仍然只是存储在一个新的领域!

所以我想知道这个字段是什么,我可以禁用它至少排除dense_vectors从存储在这个字段?

PR 85649解释了(临时)_recovery_source字段的存在以及它的用途,即创建一个最佳恢复的合成源字段。

长话短说:你不用担心。

最新更新