• 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

  • 相关阅读:
    Paratroopers 最大流问题 dinic算法 水平有待提高
    Food Delivery 区间dp
    D
    Codeforces 1282A Temporarily unavailable
    PAT 顶级 1017 The Best Peak Shape (35分)(最长上升子序列)
    POJ 2217 Secretary(后缀数组+高度数组)
    团体程序设计天梯赛 L1-011~L1-015
    PAT顶级解题目录
    PAT顶级 1005 Programming Pattern (35分)(后缀数组+基数排序 或 字符串哈希)
    团体程序设计天梯赛 L1-006~L1-010
  • 原文地址:https://www.cnblogs.com/mww-NOTCOPY/p/11143138.html
Copyright © 2020-2023  润新知