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