2016-12-01 315 views
0

根据Elasticsearch documentation有可能排除从场_all使用include_in_all设置字段(设置为假)。我需要从_all中排除一个字段,我使用spring数据elasticsearch确定了我的映射。我还没有找到办法这样做。include_in_all设置elasticsearch

这是可能的使用弹簧数据elasticsearch注释?

回答

0

不幸的是,Spring Data Elasticsearch无法做到这一点。改善请求已经一岁多,但它的优先级是轻微的,所以是没有希望的现在: https://jira.spring.io/browse/DATAES-226

我在去年的项目,我必须通过“_all”做了很多简单的搜索(而不是一个字段,我每个字段使用1次搜索),然后统一所有结果。我假设Spring Data Elasticsearch没有很好的解决这个问题的方法。

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注解有一个参数呢?对不起,我对注释没有经验。

+0

不幸的是,它没有。注释更容易,更不容易出错,这就是为什么我更喜欢它们,但我可能没有选择,只能按照你的建议。尽管我认为这将需要重写所有从注释到json的映射,因为它们可能无法一起使用。谢谢回复! – onlyahobo

+0

您不需要重写映射,只需在索引中检查它们并复制粘贴即可。是的,我猜api总是有点落后,所以谁知道何时添加功能。 – SlideM