一、实现需求
指定目录下,根据搜索词对有效的es文档的标题进行检索,并对检索词高亮,实现分页查询,若没有填搜索词,则显示指定目录的全部文档信息,查询内容按照更新时间倒序排序。
二、代码实现
1.检索结果文档实体
@Data
public class ModelSearchDocsVO {
private String classifyName;
private String classifyCode;
private List<ModelSearchDocsVO> classifyItem;
private Long docCount = 0L;
private List<ModelSearchDocVO> docsInfo;
}
@Data
public class ModelSearchDocVO {
private String title;
private String rowId;
private String policyDate;
private String detailFilePath;
private String docDir;
}
2.通过id查询es范文信息
docDirField和titleFiled对应es中的字段,写在yml配置文件里
@Value("${writing.aggField.docDirField}")
String docDirField;
@Value("${writing.aggField.titleField}")
String titleField;
/**
* 根据目录id和搜索词在es查询范文信息
*
* @param catalogList
* @param searchContext
* @param pageNum
* @param pageSize
* @param isAllChineseWords
* @param modelSearchDocsVO
* @return
*/
private ModelSearchDocsVO searchModelDocs(List<String> catalogList, String searchContext, Integer pageNum, Integer pageSize, Boolean isAllChineseW