首页>代码>基于JFinal的Springboot博客系统>/AutuBlog/src/main/java/com/autu/_admin/article/AdminArticleLuceneIndexes.java
package com.autu._admin.article; import java.util.ArrayList; import java.util.List; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.Field.Store; import org.apache.lucene.document.FieldType; import org.apache.lucene.document.TextField; import org.apache.lucene.index.IndexOptions; import com.autu.common.annotation.SysLogInfo; import com.autu.common.interceptor.SysLogInterceptor; import com.autu.common.kit.EmailKit; import com.autu.common.lucene.LuceneHelper; import com.autu.common.model.entity.Article; import com.autu.common.safe.JsoupFilter; import com.jfinal.aop.Before; import com.jfinal.aop.Inject; import com.jfinal.log.Log; @Before(SysLogInterceptor.class) public class AdminArticleLuceneIndexes { private static final Log log = Log.getLog(EmailKit.class); @Inject private AdminArticleService adminArticleService; @SysLogInfo(value="重置索引",action="delete") public void resetArticleIndexes() { deleteAll(); addAll(); } public boolean deleteAll() { try { return LuceneHelper.single().deleteAll()>0; } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage(),e); return false; } } public boolean addAll() { List<Article> articleList=adminArticleService.listAll(1); List<Document> documents=new ArrayList<>(); for(Article article:articleList) { documents.add(getDocument(article)); } return LuceneHelper.single().createIndexs(documents)>0; } @SysLogInfo(value="添加多个文章索引",action="save") public boolean addIndexs(List<Article> articles) { List<Document> documents=new ArrayList<>(); for(Article article:articles) { documents.add(getDocument(article)); } return LuceneHelper.single().createIndexs(documents)>0; } @SysLogInfo(value="添加文章索引",action="save") public boolean addIndex(Article article) { //过滤html标签 Document document = getDocument(article); return LuceneHelper.single().createIndex(document)>0; } /** * 将article转换为document * @param article * @return */ private Document getDocument(Article article) { String content=JsoupFilter.filterArticleContent(article.getContent()); article.setContent(content); Document document = new Document(); FieldType type = new FieldType(); type.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS); type.setTokenized(false); type.setStored(true); Field idField=new Field("id", String.valueOf(article.getId()), type); Field contentField = new TextField("content", article.getContent(), Store.YES); Field titleField = new TextField("title", article.getTitle(), Store.YES); document.add(idField); document.add(contentField); document.add(titleField); return document; } @SysLogInfo(value="删除索引",action="delete") public boolean delete(Integer id) { return LuceneHelper.single().deleteIndex("id", id.toString())>0; } @SysLogInfo(value="更新索引",action="update") public boolean update(Article article) { return LuceneHelper.single().updateIndex("id", article.getId().toString(), getDocument(article))>0; } }
最近下载更多
校园网 LV9
2023年5月31日
qingsj LV6
2023年3月2日
dawnguarda LV17
2022年11月2日
lcbaaa LV6
2022年8月12日
wr450702 LV2
2022年5月18日
小尤ggggg LV8
2022年5月9日
Demo1111 LV30
2022年3月14日
刘亦菲9527 LV15
2021年12月31日
采暖11 LV11
2021年12月6日
chinawind1990 LV5
2021年11月25日
最近浏览更多
krispeng LV13
昨天
yellow_flowers LV8
7月8日
TY0165 LV20
6月21日
玖零定制问题修复 LV34
5月4日
微信网友_6927932988952576 LV12
3月31日
lichengai LV7
2月26日
yxzzxy LV3
2月18日
pangzhihui LV14
2月15日
无敌霸王龙
1月18日
暂无贡献等级
skiler LV4
1月7日