include_in_all 在 spring 数据 elasticsearch 中设置
include_in_all setting in spring data elasticsearch
根据 Elasticsearch documentation 可以使用 include_in_all 设置从 _all 字段中排除一个字段(设置为 false)。我需要从 _all 中排除一个字段,并且我正在使用 spring 数据 elasticsearch 确实定义了我的映射。我还没有找到这样做的方法。
是否可以使用 spring 数据 elasticsearch 注释?
您可以将类型的映射保存到 json 文件中。然后将“"include_in_all": false”添加到要排除的字段。这应该看起来像这样。
{
"my_type": {
"properties": {
"excludedField": {
"type": "text",
"include_in_all": false
}
}
}
}
然后使用您最喜欢的 JSON reader 加载文件,将其解析为字符串并使用 elasticsearch api 更改映射。
client.admin().indices()
.preparePutMapping("my_index")
.setType("my_type")
.setSource(loadedFileString)
.get();
编辑: 我刚刚注意到您想为其使用注释。也许 @Field 注释有一个参数?对不起,我对注释没有经验。
不幸的是,Spring Data Elasticsearch 不能做这件事。改进请求已经一年了,但它的优先级是次要的,所以现在没有希望:
https://jira.spring.io/browse/DATAES-226
在我的上一个项目中,我不得不做很多简单的搜索(而不是通过“_all”字段进行搜索,我对每个字段使用了 1 次搜索),然后我将所有结果合并在一起。我认为 Spring Data Elasticsearch 无法很好地解决该问题。
根据 Elasticsearch documentation 可以使用 include_in_all 设置从 _all 字段中排除一个字段(设置为 false)。我需要从 _all 中排除一个字段,并且我正在使用 spring 数据 elasticsearch 确实定义了我的映射。我还没有找到这样做的方法。
是否可以使用 spring 数据 elasticsearch 注释?
您可以将类型的映射保存到 json 文件中。然后将“"include_in_all": false”添加到要排除的字段。这应该看起来像这样。
{
"my_type": {
"properties": {
"excludedField": {
"type": "text",
"include_in_all": false
}
}
}
}
然后使用您最喜欢的 JSON reader 加载文件,将其解析为字符串并使用 elasticsearch api 更改映射。
client.admin().indices()
.preparePutMapping("my_index")
.setType("my_type")
.setSource(loadedFileString)
.get();
编辑: 我刚刚注意到您想为其使用注释。也许 @Field 注释有一个参数?对不起,我对注释没有经验。
不幸的是,Spring Data Elasticsearch 不能做这件事。改进请求已经一年了,但它的优先级是次要的,所以现在没有希望: https://jira.spring.io/browse/DATAES-226
在我的上一个项目中,我不得不做很多简单的搜索(而不是通过“_all”字段进行搜索,我对每个字段使用了 1 次搜索),然后我将所有结果合并在一起。我认为 Spring Data Elasticsearch 无法很好地解决该问题。