4

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

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

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

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

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

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

谢谢你。

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

4

1 回答 1

3

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

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

elasticsearchTemplate.putMapping(YourDocument.class);

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

于 2015-11-10T07:48:04.493 回答