spring-data-elasticsearch使用出現的一些小問題


問題一
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM