提交 6bcd9853 authored 作者: yangdongming's avatar yangdongming

--no commit message

上级 09b46383
...@@ -66,60 +66,6 @@ public class FgResourceLibraryController { ...@@ -66,60 +66,6 @@ public class FgResourceLibraryController {
return CallBack.success(result); return CallBack.success(result);
}; };
// @ApiOperation(value = "WAP端检索", notes = "检索")
// @GetMapping(GeographyRequestPath.WAP + GeographyRequestPath.SEARCH)
// public CallBack<ResultPage> queryIndexWap(FgSearchForm form, PageParam pageParam) throws Exception {
// ResultPage result = solrListWap(form, pageParam);
///* if(ArrayUtils.isNotEmpty(result.getResList())){
// if(form.getResourceType() != null){
// Map<String,List<?>> map = diyTypeAndLabelList(form);
// // 分类
// result.setDiyTypeList(BeanUtils.copyList(map.get("diyType"), FgDiyTypeVo.class));
// // 标签
// result.setLabelList(BeanUtils.copyList(map.get("label"), FgLabelInfoVO.class));
// }
// }*/
// if(form.getResourceType() != null && StringUtils.isNotBlank(AllResourceTypeEnum.getName(form.getResourceType()))){
// FgQueryLabelListForm lab = new FgQueryLabelListForm();
// lab.setResType(AllResourceTypeEnum.getName(form.getResourceType()));
// List<FgLabelInfoVO> label =labelService.queryLabelList(lab);
// result.setLabelList(label);
// List<FgDiyTypeVo> diyType = diyTypeService.tree(AllResourceTypeEnum.getName(form.getResourceType()));
// result.setDiyTypeList(diyType);
// }
// return CallBack.success(result);
// };
@ApiOperation(value = "搜索栏", notes = "搜索栏")
@GetMapping(GeographyRequestPath.SEARCH + GeographyRequestPath.LIST)
public CallBack<List<String>> queryList(@ApiParam(value = "输入内容") FgSearchForm form) {
// PageHelper.startPage(1, 20);
PageParam pageParam = new PageParam();
pageParam.setPageNum(1);
pageParam.setPageSize(10);
List<String> result = solrList(form);
return CallBack.success(result);
/*
* //医家 if(resourceType == AllResourceTypeEnum.ZHUANJIA.getCode()){ Example
* example = authorLibraryService.createExample();
* example.createCriteria().andLike("name", name+"%").andEqualTo("status",
* LibraryStatusEnum.STATUS_1.getCode()); List<AuthorLibrary> authorList =
* authorLibraryService.selectByExample(example); list =
* authorList.stream().map(AuthorLibrary ::
* getName).collect(Collectors.toList()); } //医著 if(resourceType ==
* AllResourceTypeEnum.TUSHU.getCode()){ list = ebookService.searchList(name); }
* //文章类型 if(ArticleTypeEnum.getName(resourceType.toString()) != null){ Example
* example = articleLibraryService.createExample();
* example.createCriteria().andLike("name", name+"%").andEqualTo("status",
* LibraryStatusEnum.STATUS_1.getCode()); List<ArticleLibrary> articleList =
* articleLibraryService.selectByExample(example); list =
* articleList.stream().map(ArticleLibrary ::
* getName).collect(Collectors.toList()); }
*/
// return CallBack.success(list);
};
/** /**
* 创建SolrServer对象 * 创建SolrServer对象
* *
...@@ -178,19 +124,19 @@ public class FgResourceLibraryController { ...@@ -178,19 +124,19 @@ public class FgResourceLibraryController {
for (int i = 0; i < arr.length; i++) { for (int i = 0; i < arr.length; i++) {
if (i == 0) { if (i == 0) {
fqSq.append(" && productName : *" + arr[i] + "* "); fqSq.append(" && productName : " + arr[i] + " ");
} }
if (i == 1) { if (i == 1) {
fqSq.append(" && wherePlace : *" + arr[i] + "* "); fqSq.append(" && wherePlace : " + arr[i] + " ");
} }
if (i == 2) { if (i == 2) {
fqSq.append(" && applicant : *" + arr[i] + "* "); fqSq.append(" && applicant : " + arr[i] + " ");
} }
if (i == 3) { if (i == 3) {
fqSq.append(" && protectRange : *" + arr[i] + "* "); fqSq.append(" && protectRange : " + arr[i] + " ");
} }
if (i == 4) { if (i == 4) {
fqSq.append(" && approvalEnterpriseName : *" + arr[i] + "* "); fqSq.append(" && approvalEnterpriseName : " + arr[i] + " ");
} }
...@@ -200,60 +146,39 @@ public class FgResourceLibraryController { ...@@ -200,60 +146,39 @@ public class FgResourceLibraryController {
//申请人企业 //申请人企业
if (StringUtils.isNotBlank(form.getApprovalEnterpriseName())) { if (StringUtils.isNotBlank(form.getApprovalEnterpriseName())) {
// 关键词过滤 // 关键词过滤
fqSq.append(" && approvalEnterpriseName : *" + form.getApprovalEnterpriseName() + "* "); fqSq.append(" && approvalEnterpriseName : " + form.getApprovalEnterpriseName() + " ");
} }
if (StringUtils.isNotBlank(form.getAddress())) { if (StringUtils.isNotBlank(form.getAddress())) {
// 关键词过滤 // 关键词过滤
fqSq.append(" && address : *" + form.getAddress() + "* "); fqSq.append(" && address : " + form.getAddress() + " ");
} }
if (StringUtils.isNotBlank(form.getApplicantAddress())) { if (StringUtils.isNotBlank(form.getApplicantAddress())) {
// 关键词过滤 // 关键词过滤
fqSq.append(" && applicantAddress : *" + form.getApplicantAddress() + "* "); fqSq.append(" && applicantAddress : " + form.getApplicantAddress() + " ");
} }
if (StringUtils.isNotBlank(form.getAgentOrganization())) { if (StringUtils.isNotBlank(form.getAgentOrganization())) {
// 关键词过滤 // 关键词过滤
fqSq.append(" && agentOrganization : *" + form.getAgentOrganization() + "* "); fqSq.append(" && agentOrganization : " + form.getAgentOrganization() + " ");
} }
if (StringUtils.isNotBlank(form.getProductName())) { if (StringUtils.isNotBlank(form.getProductName())) {
// 关键词过滤 // 关键词过滤
fqSq.append(" && productName : *" + form.getProductName() + "* "); fqSq.append(" && productName : " + form.getProductName() + " ");
} }
if (StringUtils.isNotBlank(form.getProtectRange())) { if (StringUtils.isNotBlank(form.getProtectRange())) {
// 关键词过滤 // 关键词过滤
fqSq.append(" && protectRange : *" + form.getProtectRange() + "* "); fqSq.append(" && protectRange : " + form.getProtectRange() + " ");
} }
} }
if (StringUtils.isNotBlank(form.getReserve2())) { if (StringUtils.isNotBlank(form.getReserve2())) {
// 关键词过滤 // 关键词过滤
fqSq.append(" && reserve2 : *" + form.getReserve2() + "* "); fqSq.append(" && reserve2 : " + form.getReserve2() + " ");
} }
sq.set("q", fqSq.toString()); sq.set("q", fqSq.toString());
// if(StringUtils.isBlank(form.getContent())){
// // 设置查询条件
// // sq.setQuery("*:*");
// // sq.set("q", "keywords_yu:"+form.getContent()); // 和上面的等同,*:*表示查询所有
// sq.setQuery("keywords_yu : *");
// }else{
// // 处理特殊字符过滤
// // 用户输入的关键字
// String input =form.getContent();
// // 用户查询的合法的关键字
// input = regEx(input);
// if(StringUtils.isNotBlank(input)){
// String[] ch = input.split("\\s+");
// StringBuffer q = new StringBuffer();
// q.append(" ( ");
//
// q.append(" ) ");
// sq.setQuery(q.toString());
// getHighlight(sq);
// }
// }
// 执行查询,得到queryResponse对象 // 执行查询,得到queryResponse对象
QueryResponse sr = solrServer.query(sq); QueryResponse sr = solrServer.query(sq);
...@@ -278,91 +203,12 @@ public class FgResourceLibraryController { ...@@ -278,91 +203,12 @@ public class FgResourceLibraryController {
} else { } else {
resultPage = getResultPage(pageParam.getPageNum(), pageParam.getPageSize(), doclist, reslist); resultPage = getResultPage(pageParam.getPageNum(), pageParam.getPageSize(), doclist, reslist);
} }
// 标题返显
// Map<String ,List<?>> map = diyTypeAndLabelList(doclist);
// if(map != null && !map.isEmpty()){
// if(map.containsKey("label")){
// resultPage.setLabelList(BeanUtils.copyList(map.get("label"), FgLabelInfoVO.class));
// }
// if(map.containsKey("diyType")){
// resultPage.setDiyTypeList(BeanUtils.copyList(map.get("diyType"), FgDiyTypeVo.class));
// }
// }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return resultPage; return resultPage;
} }
/**
* WAP端全文检索-资源列表
*
* @param form
* @param pageParam
* @return
* @author ycw
* @date: 2019年3月11日 上午9:27:39
*/
/*
* private ResultPage solrListWap(FgSearchForm form, PageParam pageParam) {
* //查询结果list ResultPage resultPage = new ResultPage(); try { //
* 创建一个SolrServer对象,创建一个链接。参数solr服务器的url HttpSolrClient solrServer =
* getSolrClient(); // 创建一个solrQuery查询对象 SolrQuery sq = new SolrQuery(); // 权重设置
* // sq.set("qt", "/browse"); // sq.set("defType","dismax"); // sq.set("qf",
* "resourcetype ^100"); //根据参数pageParam页码值 计算记录开始位置 if(null != pageParam){ int
* rows = pageParam.getPageSize(); int start = (int)
* ((pageParam.getPageNum()-1)*rows); //限定查询记录的条数.......... sq.setStart(start);
* sq.setRows(rows); }else{ sq.setStart(0); sq.setRows(Integer.MAX_VALUE); } if
* (null != pageParam && StringUtils.isNotBlank(pageParam.getOrderBy())) {
* sq.set("sort", pageParam.getOrderBy()); } // 资源类别判断 StringBuffer fqSq = new
* StringBuffer("id:*"); if(form.getResourceType() != null &&
* StringUtils.isNotBlank(AllResourceTypeEnum.getName(form.getResourceType()))){
* //判断搜索资源类型,过滤
* if(form.getResourceType().equals(AllResourceTypeEnum.WENZHANG.getCode())){
* fqSq.append(" && ( "); HashMap<String, String> map =
* ArticleTypeEnum.getAllEnumMap(); map.forEach((k,v) -> {
* fqSq.append(" resourceType:" + k + " || "); }); fqSq.substring(0,
* fqSq.length()-3); fqSq.append(")"); }else{
* fqSq.append(" && resourceType : "+form.getResourceType()); } } // 关联医家判断
* if(form.getRelationAuthorId() != null){ //判断搜索关联医家,过滤
* fqSq.append(" && relationAuthorId : "+form.getRelationAuthorId()); } // 分类
* if(ArrayUtils.isNotEmpty(form.getDiyTypeCode())){ List<String> codes =
* form.getDiyTypeCode(); fqSq.append(" && ( "); for(int i = 0; i<codes.size();
* i++){ fqSq.append(" code:" + codes.get(i) + " "); if(i != codes.size() - 1){
* fqSq.append(" && "); } } fqSq.append(")"); }
*
* // 标签 if(ArrayUtils.isNotEmpty(form.getLabelContentDiyTypeCode())){
* List<String> codes = form.getLabelContentDiyTypeCode();
* fqSq.append(" && ( "); for(int i = 0; i<codes.size(); i++){
* fqSq.append(" labelContentDiyTypeCode:" + codes.get(i) + " "); if(i !=
* codes.size() - 1){ fqSq.append(" && "); } } fqSq.append(")"); } // 关键词
* if(StringUtils.isNotBlank(form.getKeywords())){ // 关键词过滤
* fqSq.append(" && keywords : *" + form.getKeywords() + "* "); } sq.set("fq",
* fqSq.toString()); if(StringUtils.isBlank(form.getContent())){ // 设置查询条件 //
* sq.setQuery("*:*"); // sq.set("q", "keywords_yu:"+form.getContent()); //
* 和上面的等同,*:*表示查询所有 sq.setQuery("keywords_yu : *"); }else{ // 处理特殊字符过滤 //
* 用户输入的关键字 String input =form.getContent(); // 用户查询的合法的关键字 input =
* regEx(input); if(StringUtils.isNotBlank(input)){ String[] ch =
* input.split("\\s+"); StringBuffer q = new StringBuffer(); q.append(" ( ");
* for(int i = 0; i < ch.length; i++){ q.append(" keywords_yu : " + ch[i]);
* //热搜词 sysuserClient.updateSearch(ch[i]); //检索历史
* fgSearchHistoryService.saveOrUpdateRecord(ch[i]); if(i != ch.length - 1){
* fqSq.append(" && "); } } q.append(" ) "); sq.setQuery(q.toString());
* getHighlight(sq); } } // 执行查询,得到queryResponse对象 QueryResponse sr =
* solrServer.query(sq); // 取文档列表(当前页文档),取查询结果总记录数 SolrDocumentList doclist =
* sr.getResults(); //System.out.println("检索出:" + doclist.getNumFound() +
* "条结果"); if(ArrayUtils.isEmpty(doclist)){ return resultPage; } // 高亮字段标注
* Map<String,Map<String,List<String>>> highlightMap = null; // 开启高亮
* highlightMap=sr.getHighlighting(); // 存储结果 List<Map<String, Object>> reslist
* = new ArrayList<Map<String,Object>>(); // 遍历数据 reslist =
* this.getData(reslist, doclist, highlightMap);
* if(ArrayUtils.isNotEmpty(reslist)){ reslist.stream().forEach(li -> {
* if(StringUtils.isNotBlank(ArticleTypeEnum.getName(li.get("resourceType").
* toString()))){ li.put("img", null); } }); } //封装数据... if(pageParam == null){
* resultPage = getResultPage(reslist); }else{ resultPage =
* getResultPage(pageParam.getPageNum(),pageParam.getPageSize(),doclist,reslist)
* ; } } catch (Exception e) { e.printStackTrace(); } return resultPage; }
*/
private List<Map<String, Object>> getData(List<Map<String, Object>> reslist, SolrDocumentList doclist, private List<Map<String, Object>> getData(List<Map<String, Object>> reslist, SolrDocumentList doclist,
Map<String, Map<String, List<String>>> highlightMap, String reserve) { Map<String, Map<String, List<String>>> highlightMap, String reserve) {
...@@ -409,121 +255,6 @@ public class FgResourceLibraryController { ...@@ -409,121 +255,6 @@ public class FgResourceLibraryController {
return reslist; return reslist;
} }
/**
* 全文检索-搜索栏
*
* @param form
* @return
* @author ycw
* @date: 2019年3月11日 上午9:28:11
*/
private List<String> solrList(FgSearchForm form) {
// 存储所有高亮结果
List<String> reslist = new ArrayList<>();
try {
// 创建一个SolrServer对象,创建一个链接。参数solr服务器的url
HttpSolrClient solrServer = getSolrClient();
// 创建一个solrQuery查询对象
SolrQuery sq = new SolrQuery();
// 权重设置
// sq.set("qt", "/browse");
// sq.set("defType","dismax");
// sq.set("qf", "resourcetype ^100");
// 根据参数pageParam页码值 计算记录开始位置
int rows = 10;
int start = 0;
// 限定查询记录的条数..........
sq.setStart(start);
sq.setRows(rows);
// 资源类别判断
StringBuffer fqSq = new StringBuffer("id:*");
if (StringUtils.isNotBlank(form.getSumName())) {
// 进行数据切割
String str = form.getSumName();
String[] arr = str.split("\\s+");
System.out.println(arr[1]);
for (String ss : arr) {
System.out.println(ss);
}
} else {
if (StringUtils.isNotBlank(form.getApprovalEnterpriseName())) {
// 关键词过滤
fqSq.append(" && approvalEnterpriseName : *" + form.getApprovalEnterpriseName() + "* ");
}
if (StringUtils.isNotBlank(form.getAddress())) {
// 关键词过滤
fqSq.append(" && address : *" + form.getAddress() + "* ");
}
if (StringUtils.isNotBlank(form.getApplicantAddress())) {
// 关键词过滤
fqSq.append(" && applicantAddress : *" + form.getApplicantAddress() + "* ");
}
if (StringUtils.isNotBlank(form.getAgentOrganization())) {
// 关键词过滤
fqSq.append(" && agentOrganization : *" + form.getAgentOrganization() + "* ");
}
if (StringUtils.isNotBlank(form.getProductName())) {
// 关键词过滤
fqSq.append(" && productName : *" + form.getProductName() + "* ");
}
if (StringUtils.isNotBlank(form.getProtectRange())) {
// 关键词过滤
fqSq.append(" && protectRange : *" + form.getProtectRange() + "* ");
}
}
sq.set("fq", fqSq.toString());
if (StringUtils.isBlank(form.getSumName())) {
// 设置查询条件
// sq.setQuery("*:*");
// sq.set("q", "keywords_yu:"+form.getContent()); // 和上面的等同,*:*表示查询所有
sq.setQuery("keywords_yu : *");
} else {
// 处理特殊字符过滤
// 用户输入的关键字
String input = form.getSumName();
// 用户查询的合法的关键字
input = regEx(input);
if (StringUtils.isNotBlank(input)) {
String[] ch = input.split("\\s+");
StringBuffer q = new StringBuffer();
q.append(" ( ");
for (int i = 0; i < ch.length; i++) {
q.append(" keywords_yu : " + ch[i] + "* ");
if (i != ch.length - 1) {
fqSq.append(" && ");
}
}
q.append(" ) ");
sq.setQuery(q.toString());
getHighlight(sq);
}
sq.setHighlight(false);// 关闭高亮组件
}
// 执行查询,得到queryResponse对象
QueryResponse sr = solrServer.query(sq);
// 取文档列表(当前页文档),取查询结果总记录数
SolrDocumentList doclist = sr.getResults();
if (doclist.size() < 1 || doclist == null) {
return new ArrayList<String>();
}
// 遍历数据
for (SolrDocument solrDocument : doclist) {
// 存储结果
if (solrDocument.get("name") != null) {
reslist.add(solrDocument.get("name").toString());
}
}
} catch (Exception e) {
e.printStackTrace();
}
reslist = reslist.stream().distinct().collect(Collectors.toList());
return reslist;
}
/** /**
* 开启高亮 * 开启高亮
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论