spring-data-elasticsearch - @Field / FieldIndex.not_analyzed被忽略

时间:2015-05-21 21:06:08

标签: mapping spring-data spring-annotations spring-data-elasticsearch

我正在使用spring-data-elasticsearch 1.1.2。我正在尝试使用java注释来指定不应该分析字段。

我使用以下注释:     @Field(index = FieldIndex.not_analyzed)     私有字符串类别;

生成的映射不包括“index”:此字段的“not_analyzed”:

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

我没有找到有关如何执行此操作的有用文档,但它看起来应该可以正常工作。

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

谢谢。

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

1 个答案:

答案 0 :(得分:3)

此处提出类似问题:Spring Data Elasticsearch's @Field annotation not working

您必须在应用程序启动时将映射显式放入集群中。

elasticsearchTemplate.putMapping(YourDocument.class);

您的节点/群集不知道您要放入的文档,它是第一次看到它并且没有人告诉他任何有关它的信息。 Spring只扫描包的组件,存储库等,而不是@Documents。我不确定,但我认为映射不是集群配置的一部分,因此必须在集群启动后指定映射。