# 搜索平台介绍
#### 1.搜索平台的应用场景
搜索平台主要是用于对一些企业内部知识,信息管理后聚合搜索使用的。如:企业内部的规章流程,学校内部的岗位职责,化工行业的操作规章,大型企业里面的合同管理。
#### 2. 技术实现及主要功能
技术实现主要的是依赖于ElasticSearch。主要功能包括条件查询,分组查询,不分组查询,排序。
#### 3.结构设计
1. 请求接口及参数设计
~~~
/tboot/search/maincontent
~~~
请求参数
```
{
"scope":"Default",
// 查询索引中的哪些字段
"orderByIndex":2,
//排序条件
"groupByIndex":-1,
//分组条件
"synonymSearch":true,
//搜索的索引库,有待更新
"page":1,
// 当前页数
"size":8,
// 每一个页的大小
"index":"regulation",
//搜索的索引库
"keyword":"",
// 查询条件
"classCodeKeys":[],
//聚类搜索
"indexOfGroup":0,
//用于前端页面瀑布流的形式,向下滑动查询某类数据
"queryBaseReqs":[],
// 在结果中搜索
"tagJson":[] // 高级检索
}
```
返回结果
```
{
"success":true,
"message":"success",
"code":200,
"timestamp":1605511287407,
"result":{
"maincontent":\[
{
"groupTotal":1, // 共有多少分组
"indexOfGroup":0, // 当前所在分组的第多少个,
"total":122,
"data":\[ // ES中的内容
{
"pubDept":"湖南电力",
"docNumber":"文号1",
"level":"一级规范",
"CheckFullText":"",
"publishDate":"2019-09-09",
"docCate":"通用制度",
"title":"测试1",
"content":"全文",
"serNumber":"测试1",
"createTime":"2020-09-24 13:46:04",
"docSubCate":\[
"通用制度",
"通用制度"
\],
"domain":"企业协会",
"hitTimes":0,
"id":"321431434290008064",
"status":"现行有效"
}
\],
"name":"规章制度", //搜索的哪个ES库中文名称
"index":"regulation", //搜索的哪个ES库
"group":\[
\]
}
\],
"queryBaseReqs":\[ //检索的主要条件
{
"fieldName":"Default",
"fieldValue":"",
"fieldInquiryMode":0,
"fieldRangeType":null,
"fieldSynonymSearch":true
}
\]
}
}
```
2. 分组查询相关
表名 es_menu_rule
| es_index | rule | dict_related |
| --- | --- | ---|
| 索引 | 规则,使用哪个类型分组查询 | 和menu表中的related关联 |
例:
当需求是以状态分组查询的时候, 就可以将请求参数传 “1”,如果以发布部门分组查询就传“0”以此类推在数据库里面配置,如果不分组查询就是“-1”。

表名ES_MENU
| | |
| --- | --- |
| | |
