Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将@Id字段上的FieldType.keyword与spring数据elasticsearch一起使用时出现IllegalArgumentException_Java_<img Src="//i.stack.imgur.com/A3TTx.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">spring Data Elasticsearch - Fatal编程技术网 spring-data-elasticsearch,Java,spring Data Elasticsearch" /> spring-data-elasticsearch,Java,spring Data Elasticsearch" />

Java 将@Id字段上的FieldType.keyword与spring数据elasticsearch一起使用时出现IllegalArgumentException

Java 将@Id字段上的FieldType.keyword与spring数据elasticsearch一起使用时出现IllegalArgumentException,java,spring-data-elasticsearch,Java,spring Data Elasticsearch,我有一个使用Spring elastic search注释的简单ES文档: @Document(indexName = "indexName", type = "metadata") public class EsMetadata { @Id @NonNull @Field(type = FieldType.keyword) String metadataId; @NonNull @Field(type = FieldType.keyword)

我有一个使用Spring elastic search注释的简单ES文档:

@Document(indexName = "indexName", type = "metadata")
public class EsMetadata {

    @Id
    @NonNull
    @Field(type = FieldType.keyword)
    String metadataId;

    @NonNull
    @Field(type = FieldType.keyword)
    String assetId;
}
这两个字符串通常由UUID字符串表示,其中包括连字符。在尝试搜索特定UUID时,我遇到以下问题:

解决方案(或解决方法)是将FieldType设置为
关键字
assetId
字段上工作,而不是在
metadataId
字段上工作-显然是因为它标记为
@Id

当我调用
this.esTemplate.putMapping(EsMetadata.class)
时,我得到一些IllegalArgumentException:

Caused by: java.lang.IllegalArgumentException: Could not convert [metadataId.index] to boolean
Caused by: java.lang.IllegalArgumentException: Failed to parse value [not_analyzed] as only [true] or [false] are allowed.
我使用
9515882b-f583-4675-bc19-44c9247c0365
bc205f3e-35c2-f583-835c-344a9f89d758
作为样本UUID,其中部件等同于正确测试所需行为

当我从
metadataId
中删除
@字段(type=FieldType.keyword)
注释时,一切正常-除了在搜索特定的
metadataId
uuid时得到重复项。对于
assetId
uuid,没有重复项-如预期的那样

如何在
@Id
注释字段上使用
关键字
字段类型,以便查找特定的UUID?还是我遇到了虫子

我使用弹簧数据elasticsearch 3.1.0.M1和elasticsearch 6.2.2