mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 03:46:50 +08:00
ES查询修改
This commit is contained in:
@@ -79,7 +79,10 @@ public class CourseFullText {
|
||||
private Integer isSetAudience;
|
||||
|
||||
/**受众,受众的id,多个使用逗号分隔*/
|
||||
private String audience;
|
||||
//private String audience;
|
||||
|
||||
|
||||
private String[] audiences;
|
||||
|
||||
/**资源归属*/
|
||||
private String resOwner;
|
||||
|
||||
@@ -120,7 +120,8 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
|
||||
builder.field("isSetAudience").startObject().field("type", "keyword").endObject();
|
||||
builder.field("createdAt").startObject().field("type", "integer").endObject();
|
||||
builder.field("openCourse").startObject().field("type", "integer").endObject();
|
||||
builder.field("audience").startObject().field("type", "text").field("analyzer","comma").endObject();
|
||||
//builder.field("audience").startObject().field("type", "text").field("analyzer","comma").endObject();
|
||||
builder.field("audiences").startObject().field("type", "keyword").endObject();
|
||||
builder.field("device").startObject().field("type", "integer").endObject();
|
||||
builder.endObject();
|
||||
builder.endObject();
|
||||
@@ -283,26 +284,28 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
|
||||
//加上Source判断,是为了应对后台查询,后台查询时,不需要权限,但是需要指定数据来源
|
||||
if(params.getSource()==null || params.getSource()==0 ) {
|
||||
//受众权限条件,必须是有受众的课程并且受众条件不为空
|
||||
if(StringUtils.isNotBlank(params.getAudience())) {
|
||||
if(params.getAudiences()!=null && params.getAudiences().length>0) {
|
||||
//if(StringUtils.isNotBlank(params.getAudience())) {
|
||||
BoolQueryBuilder audience= QueryBuilders.boolQuery();
|
||||
audience.should(QueryBuilders.termQuery("isSetAudience",0));
|
||||
|
||||
BoolQueryBuilder has= QueryBuilders.boolQuery();
|
||||
String[] ids=params.getAudience().split(",");
|
||||
//String[] ids=params.getAudience().split(",");
|
||||
has.must(QueryBuilders.termQuery("isSetAudience",1));
|
||||
has.must(QueryBuilders.termsQuery("audience", ids));
|
||||
//has.must(QueryBuilders.termsQuery("audience", ids));
|
||||
has.must(QueryBuilders.termsQuery("audiences", params.getAudiences()));
|
||||
audience.should(has);
|
||||
|
||||
audience.minimumShouldMatch(1);
|
||||
|
||||
boolQuery.filter(audience);
|
||||
//log.error("audience="+audience.toString());
|
||||
}else {
|
||||
//如果当前用户无受众,只能查询未设置受众的课程
|
||||
boolQuery.must(QueryBuilders.termQuery("isSetAudience",0));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//在哪端显示
|
||||
if(params.getDevice()!=null) {
|
||||
BoolQueryBuilder deviceQuery = QueryBuilders.boolQuery();
|
||||
|
||||
Reference in New Issue
Block a user