|
@@ -5,9 +5,11 @@ import com.futu.course.course.domain.Course;
|
|
|
import com.futu.course.course.service.impl.CourseServiceImpl;
|
|
|
import com.futu.course.es.Service.ESService;
|
|
|
import com.futu.course.es.domain.ESCourse;
|
|
|
+import com.futu.course.es.domain.MongoDBCourse;
|
|
|
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest;
|
|
|
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse;
|
|
|
import org.elasticsearch.action.bulk.BulkRequest;
|
|
|
+import org.elasticsearch.action.bulk.BulkResponse;
|
|
|
import org.elasticsearch.action.delete.DeleteRequest;
|
|
|
import org.elasticsearch.action.index.IndexRequest;
|
|
|
import org.elasticsearch.action.search.SearchRequest;
|
|
@@ -107,15 +109,18 @@ public class ESCourseService {
|
|
|
// 查询数据库中所有的课程
|
|
|
List<Course> list = courseService.list();
|
|
|
List<ESCourse> esCourses = new ArrayList<>();
|
|
|
+
|
|
|
// 初始化数据
|
|
|
for (Course course : list) {
|
|
|
+ System.out.println(course);
|
|
|
ESCourse esCourse = new ESCourse();
|
|
|
- esCourse.setId(String.valueOf(course.getId()));
|
|
|
+ esCourse.setId(Long.valueOf(String.valueOf(course.getId())));
|
|
|
esCourse.setName(course.getTitle());
|
|
|
esCourse.setCategoryId(Long.valueOf(course.getCategoryId()));
|
|
|
esCourse.setCoverImg(course.getCoverImg());
|
|
|
esCourse.setPrice(course.getPrice());
|
|
|
esCourses.add(esCourse);
|
|
|
+ System.out.println(esCourse);
|
|
|
}
|
|
|
// 将数据添加到ES中
|
|
|
BulkRequest bulkRequest = new BulkRequest("course");
|
|
@@ -126,6 +131,7 @@ public class ESCourseService {
|
|
|
.source(string, XContentType.JSON);
|
|
|
bulkRequest.add(indexRequest);
|
|
|
}
|
|
|
+ BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -144,7 +150,7 @@ public class ESCourseService {
|
|
|
if (categoryId != 0) {
|
|
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
|
|
|
// 创建条件在条件中添加 term 查询
|
|
|
- .must(QueryBuilders.termQuery("category_id", categoryId));
|
|
|
+ .must(QueryBuilders.termQuery("categoryId", categoryId));
|
|
|
// 将搜索容器添加搜索条件
|
|
|
searchSourceBuilder.query(boolQueryBuilder);
|
|
|
// 添加数据为搜索容器
|
|
@@ -161,9 +167,9 @@ public class ESCourseService {
|
|
|
// 处理可能的类型转换问题
|
|
|
Object idObj = sourceAsMap.get("id");
|
|
|
if (idObj instanceof Integer) {
|
|
|
- esCourse.setId(String.valueOf(((Integer) idObj).longValue()));
|
|
|
+ esCourse.setId(Long.valueOf(String.valueOf(((Integer) idObj).longValue())));
|
|
|
} else if (idObj instanceof Long) {
|
|
|
- esCourse.setId(String.valueOf((Long) idObj));
|
|
|
+ esCourse.setId(Long.valueOf(String.valueOf((Long) idObj)));
|
|
|
}
|
|
|
|
|
|
esCourse.setName((String) sourceAsMap.get("name"));
|
|
@@ -173,14 +179,14 @@ public class ESCourseService {
|
|
|
esCourse.setPrice(BigDecimal.valueOf(((Number) priceObj).doubleValue()));
|
|
|
}
|
|
|
|
|
|
- Object categoryIdObj = sourceAsMap.get("category_id");
|
|
|
+ Object categoryIdObj = sourceAsMap.get("categoryId");
|
|
|
if (categoryIdObj instanceof Integer) {
|
|
|
esCourse.setCategoryId(((Integer) categoryIdObj).longValue());
|
|
|
} else if (categoryIdObj instanceof Long) {
|
|
|
esCourse.setCategoryId((Long) categoryIdObj);
|
|
|
}
|
|
|
|
|
|
- esCourse.setCoverImg((String) sourceAsMap.get("cover_img"));
|
|
|
+ esCourse.setCoverImg((String) sourceAsMap.get("coverImg"));
|
|
|
esCourses.add(esCourse);
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
@@ -204,9 +210,9 @@ public class ESCourseService {
|
|
|
// 处理可能的类型转换问题
|
|
|
Object idObj = sourceAsMap.get("id");
|
|
|
if (idObj instanceof Integer) {
|
|
|
- esCourse.setId(String.valueOf(((Integer) idObj).longValue()));
|
|
|
+ esCourse.setId(Long.valueOf(String.valueOf(((Integer) idObj).longValue())));
|
|
|
} else if (idObj instanceof Long) {
|
|
|
- esCourse.setId(String.valueOf((Long) idObj));
|
|
|
+ esCourse.setId(Long.valueOf(String.valueOf((Long) idObj)));
|
|
|
}
|
|
|
|
|
|
esCourse.setName((String) sourceAsMap.get("name"));
|
|
@@ -216,14 +222,14 @@ public class ESCourseService {
|
|
|
esCourse.setPrice(BigDecimal.valueOf(((Number) priceObj).doubleValue()));
|
|
|
}
|
|
|
|
|
|
- Object categoryIdObj = sourceAsMap.get("category_id");
|
|
|
+ Object categoryIdObj = sourceAsMap.get("categoryId");
|
|
|
if (categoryIdObj instanceof Integer) {
|
|
|
esCourse.setCategoryId(((Integer) categoryIdObj).longValue());
|
|
|
} else if (categoryIdObj instanceof Long) {
|
|
|
esCourse.setCategoryId((Long) categoryIdObj);
|
|
|
}
|
|
|
|
|
|
- esCourse.setCoverImg((String) sourceAsMap.get("cover_img"));
|
|
|
+ esCourse.setCoverImg((String) sourceAsMap.get("coverImg"));
|
|
|
esCourses.add(esCourse);
|
|
|
}
|
|
|
// 处理搜索结果
|
|
@@ -264,9 +270,9 @@ public class ESCourseService {
|
|
|
// 处理可能的类型转换问题
|
|
|
Object idObj = sourceAsMap.get("id");
|
|
|
if (idObj instanceof Integer) {
|
|
|
- esCourse.setId(String.valueOf(((Integer) idObj).longValue()));
|
|
|
+ esCourse.setId(Long.valueOf(String.valueOf(((Integer) idObj).longValue())));
|
|
|
} else if (idObj instanceof Long) {
|
|
|
- esCourse.setId(String.valueOf((Long) idObj));
|
|
|
+ esCourse.setId(Long.valueOf(String.valueOf((Long) idObj)));
|
|
|
}
|
|
|
|
|
|
esCourse.setName((String) sourceAsMap.get("name"));
|
|
@@ -276,14 +282,14 @@ public class ESCourseService {
|
|
|
esCourse.setPrice(BigDecimal.valueOf(((Number) priceObj).doubleValue()));
|
|
|
}
|
|
|
|
|
|
- Object categoryIdObj = sourceAsMap.get("category_id");
|
|
|
+ Object categoryIdObj = sourceAsMap.get("categoryId");
|
|
|
if (categoryIdObj instanceof Integer) {
|
|
|
esCourse.setCategoryId(((Integer) categoryIdObj).longValue());
|
|
|
} else if (categoryIdObj instanceof Long) {
|
|
|
esCourse.setCategoryId((Long) categoryIdObj);
|
|
|
}
|
|
|
|
|
|
- esCourse.setCoverImg((String) sourceAsMap.get("cover_img"));
|
|
|
+ esCourse.setCoverImg((String) sourceAsMap.get("coverImg"));
|
|
|
esCourses.add(esCourse);
|
|
|
}
|
|
|
this.SaveMongoDB(name);
|
|
@@ -298,24 +304,24 @@ public class ESCourseService {
|
|
|
* @date: 2025/5/8 9:14
|
|
|
*/
|
|
|
public void SaveMongoDB(String name){
|
|
|
- List<ESCourse> all = esService.findAll();
|
|
|
+ List<MongoDBCourse> all = esService.findAll();
|
|
|
int i = 0;
|
|
|
- for (ESCourse esCourse : all) {
|
|
|
- if (esCourse.getName().equals(name)){
|
|
|
- ESCourse byId = esService.findById(esCourse.getId().toString()).get();
|
|
|
+ for (MongoDBCourse esCourse : all) {
|
|
|
+ if (esCourse.getName().equals(name)&&esCourse.getUid().equals(1L)){
|
|
|
+ MongoDBCourse byId = esService.findById(esCourse.getId().toString()).get();
|
|
|
byId.setCreateTime(new Date());
|
|
|
esService.save(byId);
|
|
|
i++;
|
|
|
}
|
|
|
}
|
|
|
if (i == 0){
|
|
|
- ESCourse esCourse = new ESCourse();
|
|
|
+ MongoDBCourse mongoDBCourse = new MongoDBCourse();
|
|
|
String string = UUID.randomUUID().toString();
|
|
|
- esCourse.setId(string);
|
|
|
- esCourse.setName(name);
|
|
|
- esCourse.setCreateTime(new Date());
|
|
|
- esCourse.setUid(1L);
|
|
|
- esService.save(esCourse);
|
|
|
+ mongoDBCourse.setId(string);
|
|
|
+ mongoDBCourse.setName(name);
|
|
|
+ mongoDBCourse.setCreateTime(new Date());
|
|
|
+ mongoDBCourse.setUid(1L);
|
|
|
+ esService.save(mongoDBCourse);
|
|
|
}
|
|
|
}
|
|
|
/**
|
|
@@ -346,13 +352,6 @@ public class ESCourseService {
|
|
|
.field("type", "text")
|
|
|
.field("analyzer", "ik_max_word")
|
|
|
.endObject()
|
|
|
- .startObject("uid")
|
|
|
- .field("type", "long")
|
|
|
- .endObject()
|
|
|
- .startObject("create_time")
|
|
|
- .field("type", "date")
|
|
|
- .field("format", "yyyy-MM-dd HH:mm:ss")
|
|
|
- .endObject()
|
|
|
.startObject("price")
|
|
|
.field("type", "float")
|
|
|
.endObject()
|