From 06831f18af0b22a507aaf3162291d6348c4d2028 Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 30 Dec 2022 17:22:01 +0800 Subject: [PATCH] =?UTF-8?q?ES=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../course/service/ICourseFullTextSearch.java | 3 +++ .../elasticsearc/CourseElasticsearchImpl.java | 23 ++++++++++++++++++- .../module/course/api/CourseFullTextApi.java | 3 +++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/modules/boe-module-course/src/main/java/com/xboe/module/course/service/ICourseFullTextSearch.java b/modules/boe-module-course/src/main/java/com/xboe/module/course/service/ICourseFullTextSearch.java index 545cc310..15acbac8 100644 --- a/modules/boe-module-course/src/main/java/com/xboe/module/course/service/ICourseFullTextSearch.java +++ b/modules/boe-module-course/src/main/java/com/xboe/module/course/service/ICourseFullTextSearch.java @@ -40,6 +40,9 @@ public interface ICourseFullTextSearch { */ boolean checkHas(String indexName,String id); + + boolean reCreateIndex(String indexName) throws Exception; + /** * 更新一个字段 * @param indexName diff --git a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java index 227944a4..81a59fea 100644 --- a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java +++ b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java @@ -74,6 +74,18 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ * @param indexName * @return */ + @Override + public boolean reCreateIndex(String indexName) throws Exception{ + boolean isExists = esUtil.isIndexExists(indexName); + if(!isExists) { + boolean ok =createIndex(indexName); + if(!ok) { + log.error("创建索引【"+indexName+"】失败"); + return false; + } + } + return true; + } /** * 创建索引 @@ -99,7 +111,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ XContentBuilder builder = XContentFactory.jsonBuilder(); builder.startObject(); builder.field("properties").startObject(); - builder.field("id").startObject().field("index", "true").field("type", "text").endObject(); + builder.field("id").startObject().field("index", "true").field("type", "keyword").endObject(); //builder.field("name").startObject().field("type", "text").field("analyzer", "ik_max_word").field("search_analyzer","ik_smart").endObject(); builder.field("name").startObject().field("type", "keyword").endObject(); builder.field("keywords").startObject().field("type", "text").field("analyzer", "ik_max_word").field("search_analyzer","ik_smart").endObject(); @@ -208,6 +220,15 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ @Override public String republish(String indexName, CourseFullText item, String fullTextId) throws Exception{ + boolean isExists = esUtil.isIndexExists(indexName); + if(!isExists) { + boolean ok =createIndex(indexName); + if(!ok) { + log.error("创建索引【"+indexName+"】失败"); + return null; + } + } + String fullId=fullTextId; boolean exists=false; diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java index bc9c5d83..c8979f2f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java @@ -55,6 +55,9 @@ public class CourseFullTextApi extends ApiBaseController{ if(fullTextSearch==null) { return error("初始化失败:未实现全文检索功能"); } + //重新创建索引,如果已经存在,不会重新建 + fullTextSearch.reCreateIndex(ICourseFullTextSearch.DEFAULT_INDEX_NAME); + //提取课程信息,因为现在课程没有太多,所以一次性全部查出来, CourseQueryDto dto =new CourseQueryDto(); dto.setPublish(true);//必须是已发布的