使用Elasticsearch 1.4.3
我正在建立一种“报告”系统。客户可以选择要在结果中返回的字段。
在90%的情况下,客户端永远不会选择所有字段,因此我认为可以在映射中禁用_source字段以节省空间。但是后来我得知
GET myIndex/myType/_search/ { "fields": ["field1", "field2"] ... }
不返回字段。
因此,我假设我必须为每个字段使用“ store”:true。从我阅读的内容来看,这对于搜索来说会更快,但是我认为从空间角度来看,它与_source相同,还是我们仍在节省空间?
该_source字段存储您发送给Elasticsearch的JSON,并且您可以选择仅在需要时返回某些字段,这对于您的用例而言是完美的。我从未听说存储的字段将更快地进行搜索。该_source字段在磁盘空间上可能会更大,但是如果必须存储每个字段,则无需在该_source字段上使用存储的字段。如果您确实禁用了source字段,则表示:
_source