我在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存储在这个字段中吗?
1条答案
按热度按时间fnx2tebb1#
PR 85649解释了关于(临时)
_recovery_source
场的存在以及其服务的目的,即创建用于最佳恢复的合成源场。长话短说:你不用担心。