我正在使用spring-data-elasticsearch 1.1.2。我正在尝试使用java注释来指定不应该分析字段。
我使用以下注释: @Field(index = FieldIndex.not_analyzed) 私有字符串类别;
生成的映射不包括“index”:此字段的“not_analyzed”:
"properties" : {
"category" : {
"type" : "string"
},
...
我没有找到有关如何执行此操作的有用文档,但它看起来应该可以正常工作。
它应该有用吗?我在哪里可以找到更多信息?如何最好地调试?
谢谢。
更新:问题也出现在最新的1.2.0版本中。
答案 0 :(得分:3)
此处提出类似问题:Spring Data Elasticsearch's @Field annotation not working
您必须在应用程序启动时将映射显式放入集群中。
elasticsearchTemplate.putMapping(YourDocument.class);
您的节点/群集不知道您要放入的文档,它是第一次看到它并且没有人告诉他任何有关它的信息。 Spring只扫描包的组件,存储库等,而不是@Documents。我不确定,但我认为映射不是集群配置的一部分,因此必须在集群启动后指定映射。