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