Commit cee7d4fa by shenjunjie

事件关键词匹配bug修复

parent 6cb78150
...@@ -218,7 +218,7 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao { ...@@ -218,7 +218,7 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
Calendar date = Calendar.getInstance(); Calendar date = Calendar.getInstance();
int year = date.get(Calendar.YEAR); int year = date.get(Calendar.YEAR);
for (int i = 0; i < years; i++) { for (int i = 0; i < years; i++) {
res.add(COLLECTION_PREFIX + (year - i)); res.add(COLLECTION_PREFIX + "_" + (year - i));
} }
return res; return res;
} }
......
...@@ -22,7 +22,7 @@ import java.util.concurrent.CompletableFuture; ...@@ -22,7 +22,7 @@ import java.util.concurrent.CompletableFuture;
@Component("eventDataDao") @Component("eventDataDao")
public class EventDataDaoImpl extends BaseMongoDaoImpl<EventData> implements EventDataDao { public class EventDataDaoImpl extends BaseMongoDaoImpl<EventData> implements EventDataDao {
protected static final String COLLECTION_PREFIX = "brandkbs_event_data_"; protected static final String COLLECTION_PREFIX = "brandkbs_event_data";
private static final String TIME_PATTERN = "yyyy"; private static final String TIME_PATTERN = "yyyy";
public EventDataDaoImpl() { public EventDataDaoImpl() {
......
...@@ -93,6 +93,7 @@ public class EventDataServiceImpl implements EventDataService { ...@@ -93,6 +93,7 @@ public class EventDataServiceImpl implements EventDataService {
private void updateEventData(Event event, List<EventData> eventDataList) { private void updateEventData(Event event, List<EventData> eventDataList) {
// 根据配置筛选目标数据 // 根据配置筛选目标数据
eventDataList = filterEventData(event, eventDataList); eventDataList = filterEventData(event, eventDataList);
log.info("analysisEvent-eventId:{},关键词筛选后剩余:{}条", event.getId(), eventDataList.size());
// 删除历史数据 // 删除历史数据
deleteEventRelated(event); deleteEventRelated(event);
// 数据入库 // 数据入库
...@@ -107,7 +108,7 @@ public class EventDataServiceImpl implements EventDataService { ...@@ -107,7 +108,7 @@ public class EventDataServiceImpl implements EventDataService {
String keyword = event.getKeyword(); String keyword = event.getKeyword();
for (EventData data : eventDataList) { for (EventData data : eventDataList) {
// 关键词筛选 // 关键词筛选
if (Tools.isContains(Arrays.asList(keyword.split(keyword.contains(",") ? "," : "\\|")), (data.getTitle() + data.getContent()))) { if (Tools.isContains(keyword, (data.getTitle() + data.getContent()))) {
hitList.add(data); hitList.add(data);
} }
} }
......
...@@ -851,6 +851,10 @@ public class Tools { ...@@ -851,6 +851,10 @@ public class Tools {
return dayList; return dayList;
} }
public static boolean isContains(String keyword, String content) {
return isContains(Arrays.asList(keyword.split("\\|")), content);
}
/** /**
* 是否包含关键字 * 是否包含关键字
* *
...@@ -859,20 +863,25 @@ public class Tools { ...@@ -859,20 +863,25 @@ public class Tools {
* @return 是否包含关键字 * @return 是否包含关键字
*/ */
public static boolean isContains(List<String> keywords, String content) { public static boolean isContains(List<String> keywords, String content) {
boolean contains = true; if (null == keywords || keywords.isEmpty()) {
if (null != keywords) { return false;
content = content.toLowerCase(); }
// 按空格分割必须全部命中 content = content.toLowerCase();
for (String keyword : keywords) { // 有一组命中即可
for (String word : keyword.split(" ")) { for (String keyword : keywords) {
if (!content.contains(word.toLowerCase())) { boolean contains = true;
//一个不命中,直接返回false for (String word : keyword.split(" ")) {
return false; if (!content.contains(word.toLowerCase())) {
} //一个不命中,跳转至下一组
contains = false;
break;
} }
} }
if (contains) {
return true;
}
} }
return contains; return false;
} }
public static JSONObject getBrandkbsHitMap(Map<String, Object> esMap, String hitKey) { public static JSONObject getBrandkbsHitMap(Map<String, Object> esMap, String hitKey) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment