分类
Java 大数据 笔记 编程

Spring Data Elasticsearch兼容问题

使用Spring Data Elasticsearch查询Elasticsearch数据计数

NativeSearchQueryBuilder searchQueryBuilder1 = new NativeSearchQueryBuilder()
                    .withIndices(BURY_POINT_DURATION)
                    .withQuery(boolQueryBuilder)
                    .withFields("eventId", "eventType", "eventName");
SearchQuery searchQuery1 = searchQueryBuilder1.build();
Long clickTotalCount = elasticsearchRestTemplate.count(searchQuery1);

执行错误:Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.elasticsearch.search.SearchHits.getTotalHits()J

分类
Java 编程

Spring Data 使用 Redis 自增方法报错

Spring Data Redis 的 RedisTemplate 对 Redis 进行了封装。在对某值调用increment()方法时报错:

redis ERR value is not an integer or out of range

redisTemplate.opsForValue().increment(key);

大家都知道redis序列化是将key,value值先转换为流的形式,再存储到redis中。

RedisTemplate是使用的JdkSerializationRedisSerializer序列化,序列化后的值包含了对象信息,版本号,类信息等,是一串字符串,所以无法进行数值自增操作。

而StringRedisTemplate序列化策略是字符串的值直接转为字节数组,所以存储到redis中是数值,所以可以进行自增操作。