2

我正在使用spring-data-elasticsearch 1.1.2。我正在尝试使用java注释来指定不应分析字段。spring-data-elasticsearch - @Field/FieldIndex.not_analyzed忽略

我使用以下注释: @Field(index = FieldIndex.not_analyzed) private String category;

生成的映射不包括“指数”:“not_analyzed”这个字段:

"properties" : { 
     "category" : { 
     "type" : "string" 
     }, 
     ... 

我有没有运气找到有关如何做到这一点有用的文档,但它看起来像它应该工作。

它应该工作吗?我在哪里可以找到更多信息?如何最好地调试?

谢谢。

更新:问题也出现在最新的1.2.0版本。

+0

你能找到解决这个问题的办法吗?我面对的情况完全一样...... –

+1

是的。原来,我对Spring数据elasticsearch更新现有映射的能力有一些误解。这是通过删除和重新创建索引解决的。 – jbelis

回答

2

类似的问题在这里问:Spring Data Elasticsearch's @Field annotation not working

你必须明确地把映射到对应用程序启动集群。

elasticsearchTemplate.putMapping(YourDocument.class); 

你的节点/集群有没有约你把文档的想法,它认为它的第一次,没有人告诉他有这回事呢。 Spring只扫描组件,存储库等的包,而不是@Documents。我不确定,但我认为映射不是集群配置的一部分,因此必须在集群启动后指定映射。