当前位置: 首页 > wzjs >正文

深圳招聘网站大全搜索大全引擎

深圳招聘网站大全,搜索大全引擎,展厅设计收费标准,德州做网站建设的公司哪家好一、背景 课程管理界面,查询前,需要把查询元数据给出。 学科列表、学段列表和分类列表,我们把它定义为查询元数据。 一般的业务需求是: 系统维护好多个字典,比如学科、学段等等,相当于属性库。 但是&…

一、背景

课程管理界面,查询前,需要把查询元数据给出。
学科列表、学段列表和分类列表,我们把它定义为查询元数据。

在这里插入图片描述

一般的业务需求是:
系统维护好多个字典,比如学科、学段等等,相当于属性库。

但是,这有一个不友好的地方,字典列表数据过多,比如学段字典包括了幼儿园和大学等,而实际上,课程只有初中或高中,连小学学段也没有。

这样展示的学段列表,就显得数据冗余,增加选择的干扰。

修改后的需求:
基于已有课程的属性,进行去重查询出学科列表等数据,也即上文提到的查询元数据。(已非原始字典)

比如说,我创建了一个课程,它是数学科目,初中学段,那么查询列表中的学科列表就只有数学一个值,学段列表只有初中一个值。

后期创建了一个化学科目的高中课程,此时学科列表就有数学和化学两个学科,学段包括初中和高中。

二、es索引

@Data
@Document(indexName = "#{commonConfig.courseIdx}", type = "_doc", shards = 1, refreshInterval = "-1")
public class CourseIndex implements Serializable {@Idprivate String id;/*** 课程编号*/@Field(type = FieldType.Keyword)private String courseNo;/*** 创建者ID*/@Field(type = FieldType.Long)private long creatorId;/*** 课程名称*/@Field(type = FieldType.Text)private String name;/*** 科目*/@Field(type = FieldType.Integer)private int subject;/*** 学段*/@Field(type = FieldType.Integer)private int stage;
}

三、es聚合查询


import lombok.RequiredArgsConstructor;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.terms.ParsedLongTerms;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.aggregation.AggregatedPage;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Component;import java.util.ArrayList;
import java.util.List;@Component
@RequiredArgsConstructor
public class CourseIndexAggrService {private final ElasticsearchRestTemplate elasticsearchRestTemplate;private static final String UNIQUE_FIELD = "unique_field";public static final String SUBJECT = "subject";public static final String STAGE = "stage";public List<String> findUniqueField(String uniqueField) {NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();boolQueryBuilder.filter(QueryBuilders.termQuery("deleted", LogicDeleteEnum.OK.ordinal()));queryBuilder.withQuery(boolQueryBuilder);TermsAggregationBuilder termsAgg = AggregationBuilders.terms(UNIQUE_FIELD).field(uniqueField);queryBuilder.addAggregation(termsAgg);queryBuilder.withIndices("course_index");AggregatedPage<CourseIndex> resultPage = elasticsearchRestTemplate.queryForPage(queryBuilder.build(), CourseIndex.class);Aggregation aggregation = resultPage.getAggregation(UNIQUE_FIELD);ParsedLongTerms terms = (ParsedLongTerms) aggregation;// 获取桶final List<? extends Terms.Bucket> buckets = terms.getBuckets();// 提取唯一值List<String> uniqueUserIds = new ArrayList<>();for (Terms.Bucket bucket : buckets) {uniqueUserIds.add(bucket.getKeyAsString());}return uniqueUserIds;}
}

四、调用示例

// 科目列表
final List<Integer> subjects = courseIndexAggrService.findUniqueField(SUBJECT).stream().map(v -> Integer.parseInt(v)).collect(Collectors.toList());// 学段列表
final List<Integer> stages = courseIndexAggrService.findUniqueField(STAGE).stream().map(v -> Integer.parseInt(v)).collect(Collectors.toList());
http://www.dtcms.com/wzjs/327906.html

相关文章:

  • 建设网站是什么自助建站申请
  • 天津网站app建设关联词有哪些关系
  • 深圳网站建制作seo标题优化的方法
  • 哈尔滨cms建站网络网站推广选择乐云seo
  • 怎么做网站代购网络营销师官网
  • 专用主机网站建设seo怎么去优化
  • 江津网站建设怎么样武汉seo技术
  • 湖北省建设网站搜索引擎优化时营销关键词
  • 网页设计尺寸px是什么意思上海网站快速排名优化
  • 建站技巧企业查询免费
  • WordPress打开文章页面404白山seo
  • 网站维护和推广农产品推广方案
  • 南山网站公司定中央新闻直播今天
  • ppt的免费网站搜索网站关键词
  • 临邑网站制作自己搭建一个网站
  • 怎么在网站中做视频背景天津seo优化公司
  • 江门免费网站建站模板百度云链接
  • 有源码如何搭建网站百度推广优化中心
  • 请人做网站收费百度推广开户费用多少
  • 织梦网站设计四川seo关键词工具
  • 免费帮朋友做网站网站首页面设计
  • 北京高端网站建设服务下拉框关键词软件
  • 浙江网站建设服务网络推广预算方案
  • 大型网页设计公司深圳博惠seo
  • 河南省建设厅职称网站徐州自动seo
  • 微信公众平台视频网站开发想做网站找什么公司
  • 临沂网站建设哪家公司好全国最新实时大数据
  • 厦门网站建设公司排行榜百度推广投诉热线
  • 礼品兑换网站怎么做百度高级检索入口
  • 网站开发标书常用的网络推广方法有