是否需要向Elasticsearch发送搜索请求无需使用的字段数据?
Elasticsearch 字段存储方案解答
这两种选择都符合使用规范,具体怎么选完全取决于你是否需要在检索结果中获取company字段的内容:
- 如果你不需要在查询结果里返回
company字段,仅需要用到name和email的检索和返回能力:直接不用把company字段发送到Elasticsearch即可。这种方式能降低存储成本,同时提升写入性能,没必要存储完全用不到的冗余字段。 - 如果你需要在检索命中后返回
company字段的内容,只是不需要用它作为检索条件:可以将company字段发送到Elasticsearch,同时在索引映射中将该字段的index参数设置为false,如果不需要对该字段做排序、聚合操作,还可以同步把doc_values参数设为false。这种配置下Elasticsearch不会为该字段生成倒排索引,不会占用索引相关的存储资源,也不会拖慢检索效率,同时还能在查询结果中正常返回该字段的原始值。
额外说明:如果你使用的是动态索引映射,不传company字段不会产生任何兼容问题;如果使用的是显式映射,不需要company字段的情况下直接不在映射里声明该字段即可,需要保留返回能力的话再按上述参数配置声明。
内容的提问来源于stack exchange,提问作者Ahmad Nabil
相关产品推荐
相关产品推荐

