問題一
failed to load elasticsearch nodes : org.elasticsearch.index.mapper.MapperParsingException: No type specified for field【屬性名稱]
出現這個問題,我就想到了用solr時需要再solr的配置文件中配置自己的字段,難道是因為我沒有配置?最后看了許多文章,自己又測試了許久,並不是,但又有一點關系!
解決:
1、查看是否在對應的pojo中寫上了@Document(indexName = “test”,type = “article”)
即indexName,與type不能缺少,如下
@Document(indexName = "test",type = "article")
public class Article implements Serializable {
2、在pojo的實體類屬性把@Field去掉,如下(關於為什么去掉,和我有需求必須要加上該屬性,比如該字段我需要分詞,必須配置,看第3種方法)
/* @Field(index = true,analyzer="ik_max_word",searchAnalyzer="ik_max_word") */
private String content;
3、必須需要@Field屬性,因為某些字段需要分詞,在@field屬性中再加上一個字段(type ),表明自己定義的該字段對應elasticsearch已近定義好的字段類型(出現該錯誤主要是由於該問題),如下
@Field(index = true,type = FieldType.text,analyzer="ik_max_word",searchAnalyzer="ik_max_word")
private String content;
對於其它的java類型,使用枚舉FieldType中的屬性一一對應即可,源碼如下:
public enum FieldType {
text,
Integer,
Long,
Date,
Float,
Double,
Boolean,
Object,
Auto,
Nested,
Ip,
Attachment,
keyword;
private FieldType() {
}
}
問題二
Unsupported Media Type 415
吐槽:
說實話這個問題我真是沒想到(因為之前都用的好好的。。)
原因:因為Content-type格式不正確,我后台接收用的是json接收,我這里是用的Google插件種的 postman,發送的時候用的是json格式數據,但是這個插件發送json的content-type不是palnt/text,而不是application/json
解決
更改content-type的格式為application/json
原文:https://blog.csdn.net/qq_38263083/article/details/86625218