Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dili
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
注册表
注册表
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
svn
dili
Commits
6bcd9853
提交
6bcd9853
authored
8月 19, 2019
作者:
yangdongming
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
--no commit message
上级
09b46383
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
12 行增加
和
281 行删除
+12
-281
FgResourceLibraryController.java
...controller/geographysign/FgResourceLibraryController.java
+12
-281
没有找到文件。
com.zrqx.geography/src/main/java/com/zrqx/geography/bg/controller/geographysign/FgResourceLibraryController.java
浏览文件 @
6bcd9853
...
...
@@ -66,60 +66,6 @@ public class FgResourceLibraryController {
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对象
*
...
...
@@ -178,19 +124,19 @@ public class FgResourceLibraryController {
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++)
{
if
(
i
==
0
)
{
fqSq
.
append
(
" && productName :
*"
+
arr
[
i
]
+
"*
"
);
fqSq
.
append
(
" && productName :
"
+
arr
[
i
]
+
"
"
);
}
if
(
i
==
1
)
{
fqSq
.
append
(
" && wherePlace :
*"
+
arr
[
i
]
+
"*
"
);
fqSq
.
append
(
" && wherePlace :
"
+
arr
[
i
]
+
"
"
);
}
if
(
i
==
2
)
{
fqSq
.
append
(
" && applicant :
*"
+
arr
[
i
]
+
"*
"
);
fqSq
.
append
(
" && applicant :
"
+
arr
[
i
]
+
"
"
);
}
if
(
i
==
3
)
{
fqSq
.
append
(
" && protectRange :
*"
+
arr
[
i
]
+
"*
"
);
fqSq
.
append
(
" && protectRange :
"
+
arr
[
i
]
+
"
"
);
}
if
(
i
==
4
)
{
fqSq
.
append
(
" && approvalEnterpriseName :
*"
+
arr
[
i
]
+
"*
"
);
fqSq
.
append
(
" && approvalEnterpriseName :
"
+
arr
[
i
]
+
"
"
);
}
...
...
@@ -200,60 +146,39 @@ public class FgResourceLibraryController {
//申请人企业
if
(
StringUtils
.
isNotBlank
(
form
.
getApprovalEnterpriseName
()))
{
// 关键词过滤
fqSq
.
append
(
" && approvalEnterpriseName :
*"
+
form
.
getApprovalEnterpriseName
()
+
"*
"
);
fqSq
.
append
(
" && approvalEnterpriseName :
"
+
form
.
getApprovalEnterpriseName
()
+
"
"
);
}
if
(
StringUtils
.
isNotBlank
(
form
.
getAddress
()))
{
// 关键词过滤
fqSq
.
append
(
" && address :
*"
+
form
.
getAddress
()
+
"*
"
);
fqSq
.
append
(
" && address :
"
+
form
.
getAddress
()
+
"
"
);
}
if
(
StringUtils
.
isNotBlank
(
form
.
getApplicantAddress
()))
{
// 关键词过滤
fqSq
.
append
(
" && applicantAddress :
*"
+
form
.
getApplicantAddress
()
+
"*
"
);
fqSq
.
append
(
" && applicantAddress :
"
+
form
.
getApplicantAddress
()
+
"
"
);
}
if
(
StringUtils
.
isNotBlank
(
form
.
getAgentOrganization
()))
{
// 关键词过滤
fqSq
.
append
(
" && agentOrganization :
*"
+
form
.
getAgentOrganization
()
+
"*
"
);
fqSq
.
append
(
" && agentOrganization :
"
+
form
.
getAgentOrganization
()
+
"
"
);
}
if
(
StringUtils
.
isNotBlank
(
form
.
getProductName
()))
{
// 关键词过滤
fqSq
.
append
(
" && productName :
*"
+
form
.
getProductName
()
+
"*
"
);
fqSq
.
append
(
" && productName :
"
+
form
.
getProductName
()
+
"
"
);
}
if
(
StringUtils
.
isNotBlank
(
form
.
getProtectRange
()))
{
// 关键词过滤
fqSq
.
append
(
" && protectRange :
*"
+
form
.
getProtectRange
()
+
"*
"
);
fqSq
.
append
(
" && protectRange :
"
+
form
.
getProtectRange
()
+
"
"
);
}
}
if
(
StringUtils
.
isNotBlank
(
form
.
getReserve2
()))
{
// 关键词过滤
fqSq
.
append
(
" && reserve2 :
*"
+
form
.
getReserve2
()
+
"*
"
);
fqSq
.
append
(
" && reserve2 :
"
+
form
.
getReserve2
()
+
"
"
);
}
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
sr
=
solrServer
.
query
(
sq
);
...
...
@@ -278,91 +203,12 @@ public class FgResourceLibraryController {
}
else
{
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
)
{
e
.
printStackTrace
();
}
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
,
Map
<
String
,
Map
<
String
,
List
<
String
>>>
highlightMap
,
String
reserve
)
{
...
...
@@ -409,121 +255,6 @@ public class FgResourceLibraryController {
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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论