根据Elasticsearch documentation有可能排除从场_all使用include_in_all设置字段(设置为假)。我需要从_all中排除一个字段,我使用spring数据elasticsearch确定了我的映射。我还没有找到办法这样做。include_in_all设置elasticsearch
这是可能的使用弹簧数据elasticsearch注释?
根据Elasticsearch documentation有可能排除从场_all使用include_in_all设置字段(设置为假)。我需要从_all中排除一个字段,我使用spring数据elasticsearch确定了我的映射。我还没有找到办法这样做。include_in_all设置elasticsearch
这是可能的使用弹簧数据elasticsearch注释?
不幸的是,Spring Data Elasticsearch无法做到这一点。改善请求已经一岁多,但它的优先级是轻微的,所以是没有希望的现在: https://jira.spring.io/browse/DATAES-226
我在去年的项目,我必须通过“_all”做了很多简单的搜索(而不是一个字段,我每个字段使用1次搜索),然后统一所有结果。我假设Spring Data Elasticsearch没有很好的解决这个问题的方法。
你可以保存你的类型到一个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注解有一个参数呢?对不起,我对注释没有经验。
不幸的是,它没有。注释更容易,更不容易出错,这就是为什么我更喜欢它们,但我可能没有选择,只能按照你的建议。尽管我认为这将需要重写所有从注释到json的映射,因为它们可能无法一起使用。谢谢回复! – onlyahobo
您不需要重写映射,只需在索引中检查它们并复制粘贴即可。是的,我猜api总是有点落后,所以谁知道何时添加功能。 – SlideM