一尘不染

Elasticsearch商店字段vs _source

elasticsearch

使用Elasticsearch 1.4.3

我正在建立一种“报告”系统。客户可以选择要在结果中返回的字段。

在90%的情况下,客户端永远不会选择所有字段,因此我认为可以在映射中禁用_source字段以节省空间。但是后来我得知

GET myIndex/myType/_search/
{
    "fields": ["field1", "field2"]
    ...
}

不返回字段。

因此,我假设我必须为每个字段使用“
store”:true。从我阅读的内容来看,这对于搜索来说会更快,但是我认为从空间角度来看,它与_source相同,还是我们仍在节省空间?


阅读 216

收藏
2020-06-22

共1个答案

一尘不染

_source字段存储您发送给Elasticsearch的JSON,并且您可以选择仅在需要时返回某些字段,这对于您的用例而言是完美的。我从未听说存储的字段将更快地进行搜索。该_source字段在磁盘空间上可能会更大,但是如果必须存储每个字段,则无需在该_source字段上使用存储的字段。如果您确实禁用了source字段,则表示:

  • 您将无法进行部分更新
  • 您将无法从Elasticsearch集群中的JSON重新索引数据,而必须从数据源重新索引(通常慢很多)。
2020-06-22