如何使用 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_info 和 phone_num。因此这些字段不会包含在索引的 _source
中。
我们使用spring数据elasticsearch时就是这样的。
如果您不使用 spring 数据,那么我们可以用 Xcontentbuilder 做同样的事情。
在弹性搜索中,我可以禁用 _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_info 和 phone_num。因此这些字段不会包含在索引的 _source
中。
我们使用spring数据elasticsearch时就是这样的。
如果您不使用 spring 数据,那么我们可以用 Xcontentbuilder 做同样的事情。