Commit c8235489 by shenjunjie

Merge branch 'release' into 'master'

Release

See merge request !264
parents a2972503 3c3bec1b
...@@ -114,43 +114,29 @@ public class EsQueryTools { ...@@ -114,43 +114,29 @@ public class EsQueryTools {
nestedBoolBuilder.must(QueryBuilders.termQuery("brandkbs_cache_maps.channel_emotion", channelEmotion)); nestedBoolBuilder.must(QueryBuilders.termQuery("brandkbs_cache_maps.channel_emotion", channelEmotion));
} }
boolQueryBuilder.must(cacheMapsNestedQuery(nestedBoolBuilder)); boolQueryBuilder.must(cacheMapsNestedQuery(nestedBoolBuilder));
// 其他字段 // mediaTypes
if (CollectionUtils.isNotEmpty(mediaTypes)) { addMediaTypes(mediaTypes, boolQueryBuilder);
BoolQueryBuilder mediaTypesBoolQueryBuilder = QueryBuilders.boolQuery();
for (String mediaType : mediaTypes) {
BoolQueryBuilder mediaTypeBoolQueryBuilder = QueryBuilders.boolQuery();
//其他
if (ImportantChannelEnum.QITA.getState().equals(mediaType)) {
for (String tag : ImportantChannelEnum.getAllTagExceptSpec()) {
mediaTypeBoolQueryBuilder.mustNot(QueryBuilders.matchQuery("channel_tag", tag));
}
} else {
mediaTypeBoolQueryBuilder.must(QueryBuilders.matchQuery("channel_tag", mediaType));
}
mediaTypesBoolQueryBuilder.should(mediaTypeBoolQueryBuilder);
}
boolQueryBuilder.must(mediaTypesBoolQueryBuilder);
}
return boolQueryBuilder; return boolQueryBuilder;
} }
public static BoolQueryBuilder assembleCacheMapsQueryWithProject(String projectId, List<String> mediaTypes) { public static BoolQueryBuilder assembleCacheMapsQueryWithProject(String projectId, List<String> mediaTypes) {
BoolQueryBuilder nestedBoolQueryBuilder = QueryBuilders.boolQuery();
TermQueryBuilder mustQuery = QueryBuilders.termQuery("brandkbs_cache_maps.project_id.keyword", projectId);
if (CollectionUtils.isEmpty(mediaTypes)) {
// 不组装mediaTypes的情况
nestedBoolQueryBuilder.must(cacheMapsNestedQuery(mustQuery));
} else {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
mediaTypes.forEach(e -> { BoolQueryBuilder nestedBoolBuilder = QueryBuilders.boolQuery();
BoolQueryBuilder mediaTypeQueryBuilder = QueryBuilders.boolQuery(); // 必要条件
mediaTypeQueryBuilder.must(QueryBuilders.termQuery("brandkbs_cache_maps.channel_type.keyword", e)); nestedBoolBuilder.must(QueryBuilders.termQuery("brandkbs_cache_maps.project_id.keyword", projectId));
mediaTypeQueryBuilder.must(mustQuery); // 或需要添加其余nested字段
boolQueryBuilder.should(cacheMapsNestedQuery(mediaTypeQueryBuilder)); boolQueryBuilder.must(cacheMapsNestedQuery(nestedBoolBuilder));
}); // mediaTypes
nestedBoolQueryBuilder.must(boolQueryBuilder); addMediaTypes(mediaTypes, boolQueryBuilder);
} // BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
return nestedBoolQueryBuilder; // mediaTypes.forEach(e -> {
// BoolQueryBuilder mediaTypeQueryBuilder = QueryBuilders.boolQuery();
// mediaTypeQueryBuilder.must(QueryBuilders.termQuery("brandkbs_cache_maps.channel_type.keyword", e));
// mediaTypeQueryBuilder.must(mustQuery);
// boolQueryBuilder.should(cacheMapsNestedQuery(mediaTypeQueryBuilder));
// });
// nestedBoolQueryBuilder.must(boolQueryBuilder);
return boolQueryBuilder;
} }
public static BoolQueryBuilder assembleCacheMapsQueryExcludePrimaryId(String projectId){ public static BoolQueryBuilder assembleCacheMapsQueryExcludePrimaryId(String projectId){
...@@ -351,4 +337,23 @@ public class EsQueryTools { ...@@ -351,4 +337,23 @@ public class EsQueryTools {
return regex.toString(); return regex.toString();
} }
private static void addMediaTypes(List<String> mediaTypes, BoolQueryBuilder boolQueryBuilder) {
if (CollectionUtils.isNotEmpty(mediaTypes)) {
BoolQueryBuilder mediaTypesBoolQueryBuilder = QueryBuilders.boolQuery();
for (String mediaType : mediaTypes) {
BoolQueryBuilder mediaTypeBoolQueryBuilder = QueryBuilders.boolQuery();
//其他
if (ImportantChannelEnum.QITA.getState().equals(mediaType)) {
for (String tag : ImportantChannelEnum.getAllTagExceptSpec()) {
mediaTypeBoolQueryBuilder.mustNot(QueryBuilders.matchQuery("channel_tag", tag));
}
} else {
mediaTypeBoolQueryBuilder.must(QueryBuilders.matchQuery("channel_tag", mediaType));
}
mediaTypesBoolQueryBuilder.should(mediaTypeBoolQueryBuilder);
}
boolQueryBuilder.must(mediaTypesBoolQueryBuilder);
}
}
} }
...@@ -74,6 +74,8 @@ public class BaseMap { ...@@ -74,6 +74,8 @@ public class BaseMap {
private Double channelEmotionIndex; private Double channelEmotionIndex;
private String channelTag;
/** /**
* 当标题为空时用文本截取前20个字代替 * 当标题为空时用文本截取前20个字代替
* *
......
package com.zhiwei.brandkbs2.pojo.external; package com.zhiwei.brandkbs2.pojo.external;
import com.zhiwei.base.category.ClassB; import com.zhiwei.base.category.ClassB;
import com.zhiwei.brandkbs2.common.GlobalPojo;
import com.zhiwei.brandkbs2.pojo.BaseMap; import com.zhiwei.brandkbs2.pojo.BaseMap;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
...@@ -33,9 +33,13 @@ public class BaseMapCompound { ...@@ -33,9 +33,13 @@ public class BaseMapCompound {
// 情感倾向 // 情感倾向
// tagList.add(baseMap.getEmotion()); // tagList.add(baseMap.getEmotion());
// 媒体类型 // 媒体类型
String mediaType = GlobalPojo.getMediaType(projectId, baseMap.getPlatform(), baseMap.getSource()); // String mediaType = GlobalPojo.getMediaType(projectId, baseMap.getPlatform(), baseMap.getSource());
if (null != mediaType) { // if (null != mediaType) {
tagList.add(mediaType); // tagList.add(mediaType);
// }
String channelTag = baseMap.getChannelTag();
if (null != channelTag) {
tagList.addAll(Arrays.asList(channelTag.split(",")));
} }
// 仅针对微博平台的 原创/转发 标签 // 仅针对微博平台的 原创/转发 标签
if (ClassB.TypeB.INCOMPLETE.equals(baseMap.getTypeB())) { if (ClassB.TypeB.INCOMPLETE.equals(baseMap.getTypeB())) {
......
...@@ -334,6 +334,10 @@ public class Tools { ...@@ -334,6 +334,10 @@ public class Tools {
res.setRealSource(String.valueOf(map.get(GenericAttribute.ES_REAL_SOURCE))); res.setRealSource(String.valueOf(map.get(GenericAttribute.ES_REAL_SOURCE)));
res.setPlatform(getPlatform(map)); res.setPlatform(getPlatform(map));
res.setEmotion(getEmotion(map)); res.setEmotion(getEmotion(map));
Object channelTagObj = map.get("channel_tag");
if (null != channelTagObj) {
res.setChannelTag(channelTagObj.toString());
}
int c5 = Integer.parseInt(String.valueOf(map.get(GenericAttribute.ES_C5))); int c5 = Integer.parseInt(String.valueOf(map.get(GenericAttribute.ES_C5)));
// 单独设置属性title,content 部分url // 单独设置属性title,content 部分url
switch (res.getTypeB()) { switch (res.getTypeB()) {
......
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