|
|
@ -2,9 +2,12 @@ package com.ruoyi.biemo.business.service;
|
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.github.pagehelper.util.StringUtil;
|
|
|
|
import com.github.pagehelper.util.StringUtil;
|
|
|
|
|
|
|
|
import com.hankcs.hanlp.seg.common.Term;
|
|
|
|
|
|
|
|
import com.hankcs.hanlp.tokenizer.NLPTokenizer;
|
|
|
|
import com.ruoyi.biemo.business.domain.DocInfo;
|
|
|
|
import com.ruoyi.biemo.business.domain.DocInfo;
|
|
|
|
import com.ruoyi.biemo.business.domain.Node;
|
|
|
|
import com.ruoyi.biemo.business.domain.Node;
|
|
|
|
import com.ruoyi.biemo.business.domain.Relationship;
|
|
|
|
import com.ruoyi.biemo.business.domain.Relationship;
|
|
|
|
|
|
|
|
import com.ruoyi.biemo.business.domain.WordCloudItem;
|
|
|
|
import com.ruoyi.biemo.business.domain.event.DocInfoDeleteEvent;
|
|
|
|
import com.ruoyi.biemo.business.domain.event.DocInfoDeleteEvent;
|
|
|
|
import com.ruoyi.biemo.business.domain.event.DocInfoSaveEvent;
|
|
|
|
import com.ruoyi.biemo.business.domain.event.DocInfoSaveEvent;
|
|
|
|
import com.ruoyi.biemo.business.response.MyResultResponse;
|
|
|
|
import com.ruoyi.biemo.business.response.MyResultResponse;
|
|
|
@ -16,6 +19,8 @@ import com.ruoyi.biemo.nlp.SummaryUtils;
|
|
|
|
import com.ruoyi.biemo.utils.MyObjects;
|
|
|
|
import com.ruoyi.biemo.utils.MyObjects;
|
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
|
import org.elasticsearch.search.SearchHit;
|
|
|
|
import org.elasticsearch.search.SearchHit;
|
|
|
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
|
|
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
|
|
|
import org.elasticsearch.search.sort.SortOrder;
|
|
|
|
import org.elasticsearch.search.sort.SortOrder;
|
|
|
@ -27,6 +32,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.print.Doc;
|
|
|
|
import javax.print.Doc;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
@ -443,5 +449,32 @@ public class DocInfoService extends EsService<DocInfo> {
|
|
|
|
// insertOrUpdateDocInfo(docInfo);
|
|
|
|
// insertOrUpdateDocInfo(docInfo);
|
|
|
|
return response;
|
|
|
|
return response;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public List<WordCloudItem> getWordCloudByCateId(String categoryId) {
|
|
|
|
|
|
|
|
Map<String,Integer> temp = new ConcurrentHashMap<>();
|
|
|
|
|
|
|
|
List<WordCloudItem> wordCloudItemList = new ArrayList<>();
|
|
|
|
|
|
|
|
DocInfo docInfo = new DocInfo();
|
|
|
|
|
|
|
|
docInfo.setCateId(categoryId);
|
|
|
|
|
|
|
|
List<DocInfo> docInfoList = selectDocInfoList(docInfo);
|
|
|
|
|
|
|
|
if(CollectionUtils.isNotEmpty(docInfoList)){
|
|
|
|
|
|
|
|
List<Term> termList = docInfoList.parallelStream().filter(ObjectUtils::isNotEmpty).flatMap(_docInfo -> NLPTokenizer.segment(_docInfo.getContent()).stream()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
if(CollectionUtils.isNotEmpty(termList)){
|
|
|
|
|
|
|
|
termList.parallelStream().forEach(term -> {
|
|
|
|
|
|
|
|
String word = term.word;
|
|
|
|
|
|
|
|
Integer value = term.getFrequency();
|
|
|
|
|
|
|
|
if(!temp.containsKey(word)){
|
|
|
|
|
|
|
|
temp.put(word,1);
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
temp.put(word,temp.get(word)+1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for(Map.Entry<String,Integer> entry : temp.entrySet()){
|
|
|
|
|
|
|
|
WordCloudItem wordCloudItem = new WordCloudItem();
|
|
|
|
|
|
|
|
wordCloudItem.setName(entry.getKey());
|
|
|
|
|
|
|
|
wordCloudItem.setValue(entry.getValue());
|
|
|
|
|
|
|
|
wordCloudItemList.add(wordCloudItem);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return wordCloudItemList;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|