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