From 9209f05dac5eafdc1fd4a75f3261267ec7893ecd Mon Sep 17 00:00:00 2001 From: 354798ggg <1074825718@qq.com> Date: 星期三, 31 五月 2023 14:00:31 +0800 Subject: [PATCH] 文档检索调整 --- src/main/java/com/product/lucene/service/LuceneService.java | 99 +++++++++++++++++++++++++------------------------ 1 files changed, 50 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/product/lucene/service/LuceneService.java b/src/main/java/com/product/lucene/service/LuceneService.java index 92465a5..4a788ea 100644 --- a/src/main/java/com/product/lucene/service/LuceneService.java +++ b/src/main/java/com/product/lucene/service/LuceneService.java @@ -2,10 +2,11 @@ import com.alibaba.fastjson.JSONObject; import com.product.common.lang.StringUtils; +import com.product.core.config.CoreConst; import com.product.core.dao.BaseDao; import com.product.core.entity.FieldSetEntity; import com.product.core.permission.PermissionService; -import com.product.core.websocket.config.CmnConst; +import com.product.lucene.config.CmnConst; import com.product.lucene.util.FileUtils; import com.product.util.BaseUtil; @@ -54,20 +55,20 @@ * @throws IOException */ public void createdIndex(FieldSetEntity fse) { - String function_uuid=fse.getString("function_uuid"); //鑾峰彇鍔熻兘 + String function_uuid=fse.getString(CoreConst.FUNCTION_UUID); //鑾峰彇鍔熻兘 File file=(File)fse.getObject("file"); //鑾峰彇闄勪欢 //鑾峰彇鍏ㄦ枃妫�绱㈤厤缃� - FieldSetEntity fseConfig=baseDao.getFieldSetEntityByFilter("product_sys_document_search", "function_uuid=?", new Object[] {function_uuid}, false); + FieldSetEntity fseConfig=baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH, "function_uuid=?", new Object[] {function_uuid}, false); if (fseConfig!=null) { - String table_uuid=fseConfig.getString("table_name"); + String table_uuid=fseConfig.getString(CmnConst.TABLE_NAME); //鑾峰彇缂撳瓨琛ㄩ厤缃� - FieldSetEntity fseTable=baseDao.getFieldSetEntity("product_sys_datamodel_table", table_uuid, false); + FieldSetEntity fseTable=baseDao.getFieldSetEntity(CoreConst.PRODUCT_SYS_DATAMODEL_TABLE, table_uuid, false); if (fseTable!=null) { //鑾峰彇闄勪欢uuids - String attachments=fse.getString("attachment_uuid"); + String attachments=fse.getString(CmnConst.ATTACHMENT_UUID); if (!StringUtils.isEmpty(attachments)) { //閬嶅巻鑾峰彇闄勪欢淇℃伅 @@ -76,16 +77,16 @@ for (int i = 0; i < attachment.length; i++) { //鑾峰彇闄勪欢淇℃伅 - FieldSetEntity fseAttachment=baseDao.getFieldSetEntity("product_sys_attachments", attachment[i], false); + FieldSetEntity fseAttachment=baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_ATTACHMENTS, attachment[i], false); if (fseAttachment!=null) { if (file!=null) { //鐢熸垚绱㈠紩淇℃伅 Document doc=new Document(); - doc.add(new StringField("uuid", attachment[i], Field.Store.YES)); //闄勪欢UUID - doc.add(new TextField("function_uuid", function_uuid, Field.Store.YES)); //鍔熻兘UUID - doc.add(new TextField("file_name", fseAttachment.getString("file_name"), Field.Store.YES)); //鏂囦欢鍚� - doc.add(new TextField("file_content", FileUtils.FileToString(file), Field.Store.YES)); //鏂囦欢鍐呭唴瀹� + doc.add(new StringField(CoreConst.UUID, attachment[i], Field.Store.YES)); //闄勪欢UUID + doc.add(new TextField(CoreConst.FUNCTION_UUID, function_uuid, Field.Store.YES)); //鍔熻兘UUID + doc.add(new TextField(CmnConst.FILE_NAME, fseAttachment.getString(CmnConst.FILE_NAME), Field.Store.YES)); //鏂囦欢鍚� + doc.add(new TextField(CmnConst.FILE_CONTENT, FileUtils.FileToString(file), Field.Store.YES)); //鏂囦欢鍐呭唴瀹� docs.add(doc); } } @@ -120,49 +121,49 @@ JSONObject jsonReturn=new JSONObject(); // 妯$硦鍖归厤,鍖归厤璇� - String search_key=fse.getString("search_key"); + String search_key=fse.getString(CmnConst.SEARCH_KEY); if (!BaseUtil.strIsNull(search_key)) { //鏌ヨ瑙f瀽鍣� - QueryParser parser = new MultiFieldQueryParser(new String [] {"file_name","file_content"}, new SmartChineseAnalyzer()); + QueryParser parser = new MultiFieldQueryParser(new String [] {CmnConst.FILE_NAME,CmnConst.FILE_CONTENT}, new SmartChineseAnalyzer()); Query query = parser.parse(search_key); //楂樹寒鏍煎紡 - SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<span style='color:red'>", "</span>"); + SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter(CmnConst.HIGHLIGHT_BEFORE, CmnConst.HIGHLIGHT_AFTER); //楂樹寒鍖归厤鍣� Highlighter highlighter = new Highlighter(simpleHTMLFormatter, new QueryScorer(query)); Fragmenter fragmenter = new SimpleFragmenter(100); highlighter.setTextFragmenter(fragmenter); //鍒嗛〉鏌ヨ鏂囨。 - TopDocs topDocs = searchByPage(fse.getInteger("cpage"), fse.getInteger("pagesize"), indexSearcher, query); + TopDocs topDocs = searchByPage(fse.getInteger(CoreConst.CPAGE), fse.getInteger(CoreConst.PAGESIZE), indexSearcher, query); ScoreDoc[] hits = topDocs.scoreDocs; for (int i = 0; i < hits.length; i++) { Document doc = indexSearcher.doc(hits[i].doc); JSONObject json=new JSONObject(); - if (!StringUtils.isEmpty(doc.get("function_uuid"))) { - getConfig(json, doc.get("function_uuid"), doc.get("uuid")); + if (!StringUtils.isEmpty(doc.get(CoreConst.FUNCTION_UUID))) { + getConfig(json, doc.get(CoreConst.FUNCTION_UUID), doc.get(CoreConst.UUID)); } - json.put("function_uuid", doc.get("function_uuid")); + json.put(CoreConst.FUNCTION_UUID, doc.get(CoreConst.FUNCTION_UUID)); // 鍐呭澧炲姞楂樹寒鏄剧ず - String file_name=highlighter.getBestFragment(new SmartChineseAnalyzer(), "file_name",doc.get("file_name")); + String file_name=highlighter.getBestFragment(new SmartChineseAnalyzer(), CmnConst.FILE_NAME,doc.get(CmnConst.FILE_NAME)); if (StringUtils.isEmpty(file_name)) { - file_name=doc.get("file_name"); + file_name=doc.get(CmnConst.FILE_NAME); } - String file_content=highlighter.getBestFragment(new SmartChineseAnalyzer(), "file_content",doc.get("file_content")); + String file_content=highlighter.getBestFragment(new SmartChineseAnalyzer(), CmnConst.FILE_CONTENT,doc.get(CmnConst.FILE_CONTENT)); if (StringUtils.isEmpty(file_content)) { - file_content=doc.get("file_content"); + file_content=doc.get(CmnConst.FILE_CONTENT); } - json.put("file_name", file_name); - json.put("file_content", file_content); + json.put(CmnConst.FILE_NAME, file_name); + json.put(CmnConst.FILE_CONTENT, file_content); jsonTotal.add(json); } - jsonReturn.put("totalCount", topDocs.totalHits.value); + jsonReturn.put(CmnConst.TOTALCOUNT, topDocs.totalHits.value); } - jsonReturn.put("data", jsonTotal); + jsonReturn.put(CmnConst.DATA, jsonTotal); return jsonReturn; } @@ -174,26 +175,26 @@ */ public void getConfig(JSONObject json, String function_uuid, String uuid) { - FieldSetEntity fseConfig=baseDao.getFieldSetEntityByFilter("product_sys_document_search", "function_uuid=?", new Object[] {function_uuid}, false); + FieldSetEntity fseConfig=baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH, "function_uuid=?", new Object[] {function_uuid}, false); if (fseConfig!=null) { - FieldSetEntity fseFunction=baseDao.getFieldSetEntity("product_sys_functions", function_uuid, false); + FieldSetEntity fseFunction=baseDao.getFieldSetEntity(CoreConst.PRODUCT_SYS_FUNCTIONS, function_uuid, false); //鑾峰彇鏉冮檺杩囨护瀛楁 - String org_fields=fseConfig.getString("org_fileds"); - String user_fields=fseConfig.getString("user_fileds"); + String org_fields=fseConfig.getString(CmnConst.ORG_FIELDS); + String user_fields=fseConfig.getString(CmnConst.USER_FIELDS); //鑾峰彇闄勪欢淇℃伅 - FieldSetEntity fseAttachment=baseDao.getFieldSetEntity("product_sys_attachments", uuid, false); + FieldSetEntity fseAttachment=baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_ATTACHMENTS, uuid, false); baseDao.loadPromptData(fseAttachment); if (fseAttachment!=null) { StringBuilder filter=new StringBuilder(); - filter.append(fseAttachment.getString("attachment_data_field")); + filter.append(fseAttachment.getString(CmnConst.ATTACHMENT_DATA_FIELD)); filter.append(" =? "); if (StringUtils.isEmpty(org_fields)) { if (!StringUtils.isEmpty(user_fields)) { filter.append(" AND "); - filter.append(permissionService.getDataFilter(fseAttachment.getString("attachment_data_table"), user_fields)); + filter.append(permissionService.getDataFilter(fseAttachment.getString(CmnConst.ATTACHMENT_DATA_TABLE), user_fields)); } }else { if (StringUtils.isEmpty(user_fields)) { @@ -201,35 +202,35 @@ filter.append(permissionService.getDataFilter(org_fields)); }else { filter.append(" AND "); - filter.append(permissionService.getDataFilter(fseAttachment.getString("attachment_data_table"), user_fields, org_fields)); + filter.append(permissionService.getDataFilter(fseAttachment.getString(CmnConst.ATTACHMENT_DATA_TABLE), user_fields, org_fields)); } } //鑾峰彇鍘熸暟鎹� - FieldSetEntity fseService=baseDao.getFieldSetEntityByFilter(fseAttachment.getString("attachment_data_table"), filter.toString(), new Object[] {uuid}, false); + FieldSetEntity fseService=baseDao.getFieldSetEntityByFilter(fseAttachment.getString(CmnConst.ATTACHMENT_DATA_TABLE), filter.toString(), new Object[] {uuid}, false); if (fseService==null) {//鏉冮檺杩囨护鏃犲師鏁版嵁 - FieldSetEntity fseService2=baseDao.getFieldSetEntityByFilter(fseAttachment.getString("attachment_data_table"), fseAttachment.getString("attachment_data_field")+"=?", new Object[] {uuid}, false); + FieldSetEntity fseService2=baseDao.getFieldSetEntityByFilter(fseAttachment.getString(CmnConst.ATTACHMENT_DATA_TABLE), fseAttachment.getString(CmnConst.ATTACHMENT_DATA_FIELD)+"=?", new Object[] {uuid}, false); if (fseService2==null) { // json.put("date_time", fseService2.getString(fseConfig.getString("time_field"))); - json.put("title", "鏃犵浉鍏充笟鍔℃暟鎹�"); - json.put("function_name", fseFunction.getString("function_name")); - json.put("is_perssion", 1); + json.put(CmnConst.TITLE, "鏃犵浉鍏充笟鍔℃暟鎹�"); + json.put(CoreConst.FUNCTION_NAME, fseFunction.getString(CoreConst.FUNCTION_NAME)); + json.put(CmnConst.IS_PERSSION, 1); }else { - json.put("service_uuid", fseService2.getString("uuid")); - json.put("date_time", fseService2.getString(fseConfig.getString("time_field"))); - json.put("title", fseService2.getString(fseConfig.getString("title_field"))); - json.put("function_name", fseFunction.getString("function_name")); - json.put("is_perssion", 0); + json.put(CmnConst.SERVICE_UUID, fseService2.getString(CoreConst.UUID)); + json.put(CmnConst.DATE_TIME, fseService2.getString(fseConfig.getString(CmnConst.TIME_FIELD))); + json.put(CmnConst.TITLE, fseService2.getString(fseConfig.getString(CmnConst.TITLE_FIELD))); + json.put(CoreConst.FUNCTION_NAME, fseFunction.getString(CoreConst.FUNCTION_NAME)); + json.put(CmnConst.IS_PERSSION, 0); } }else { - json.put("service_uuid", fseService.getString("uuid")); - json.put("date_time", fseService.getString(fseConfig.getString("time_field"))); - json.put("title", fseService.getString(fseConfig.getString("title_field"))); - json.put("function_name", fseFunction.getString("function_name")); + json.put(CmnConst.SERVICE_UUID, fseService.getString(CoreConst.UUID)); + json.put(CmnConst.DATE_TIME, fseService.getString(fseConfig.getString(CmnConst.TIME_FIELD))); + json.put(CmnConst.TITLE, fseService.getString(fseConfig.getString(CmnConst.TITLE_FIELD))); + json.put(CoreConst.FUNCTION_NAME, fseFunction.getString(CoreConst.FUNCTION_NAME)); } - json.put("created_by", fseAttachment.getString(CmnConst.CREATED_BY)); + json.put(CoreConst.CREATED_BY, fseAttachment.getString(CoreConst.CREATED_BY)); } } } -- Gitblit v1.9.2