什么是ElasticSearch中的_recovery_source字段?

7gyucuyw  于 2022-12-03  发布在  ElasticSearch
关注(0)|答案(1)|浏览(163)

我在ElasticSearch中创建了两个索引,除了一个参数之外,Map完全相同,其中一个Map将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存储为源代码中的普通浮点数,正如我所预期的那样
1.源中没有矢量的索引不会存储密集矢量但是它会创建一个名为_recovery_source的新字段,其大小等于1000个存储为普通浮点数的1024维矢量所占的空间。
因此,即使我明确地排除了密集向量存储在弹性中,它们仍然存储在一个新的字段中!
我想知道这个字段是什么,我可以禁用它,至少排除dense_vectors存储在这个字段中吗?

fnx2tebb

fnx2tebb1#

PR 85649解释了关于(临时)_recovery_source场的存在以及其服务的目的,即创建用于最佳恢复的合成源场。
长话短说:你不用担心。

相关问题