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