我有一个文档,其中包含许多我从未查询过的字段,因此我想关闭这些字段的索引以节省资源。我相信我需要禁用该_all字段,但是如何指定要对哪些字段建立索引呢?
_all
默认情况下,所有字段也都在_all特殊字段内建立索引,该字段开箱即用地提供了所谓的catchall功能。但是,可以通过以下include_in_all选项为映射中的每个字段指定是否要将其添加到_all字段:
include_in_all
"person" : { "properties" : { "name" : { "type" : "string", "store" : "yes", "include_in_all" : false } } }
上面的示例禁用了name字段的默认行为,该行为不会成为_all字段的一部分。
否则,如果您完全不需要特定类型的_all字段,则可以在映射中再次这样禁用它:
"person" : { "_all" : {"enabled" : false}, "properties" : { "name" : { "type" : "string", "store" : "yes" } } }
禁用它时,您的字段仍将被单独索引,但是您将没有_all提供的包罗万象的功能。然后,您将需要查询您的特定字段,而不是依赖_all特殊字段。实际上,当您查询并且不指定字段时,elasticsearch将查询_all字段,除非您覆盖要查询的默认字段。