如何使用 spring 数据 elasticsearch 禁用 _source 字段

How to disable _source field using spring data elasticsearch

在弹性搜索中,我可以禁用 _source 字段,例如:-

  PUT tweets
    {
      "mappings": {
        "tweet": {
          "_source": {
            "enabled": false
          }
        }
      }}

如何使用 spring data-elasticsearch 实现这一点?

我们可以通过以下方式放置此映射:-

1) 硬编码 2) 可以从属性文件中读取 3) 使用 Xcontentbuilder 构建它

我们可以使用 spring 数据提供的 ElasticsearchTemplate class 来做到这一点:-

           if (!elasticsearchTemplate.indexExists(esIndex)) {
                elasticsearchTemplate.createIndex(esIndex);
                elasticsearchTemplate.putMapping(esIndex, esType,mappingObject);
             }

此映射对象是从属性文件中读取的字符串。 可以是这样的:-

es-configs.properties

mapping={"_source": {"includes": [ "id","name","marks","grade"],"excludes": ["contact_info","phone_num"]}}

在这种情况下,我们排除字段 contact_infophone_num。因此这些字段不会包含在索引的 _source 中。 我们使用spring数据elasticsearch时就是这样的。 如果您不使用 spring 数据,那么我们可以用 Xcontentbuilder 做同样的事情。