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

网站建设销售员工作内容重庆新闻联播

网站建设销售员工作内容,重庆新闻联播,长沙网站建设公司名单,百度推广平台登录网址一、背景 es索引有一个文档CourseIndex#xff0c;下面是示意: creatorIdgradesubjectnameno1002270英语听力课程一N00232DS91004380数学口算课程N00209DK71003480物理竞赛课程N00642XS21002280英语听力课程二N00432WS31002290英语听力课程三N002312DP5 在搜索的时候#…一、背景 es索引有一个文档CourseIndex下面是示意: creatorIdgradesubjectnameno1002270英语听力课程一N00232DS91004380数学口算课程N00209DK71003480物理竞赛课程N00642XS21002280英语听力课程二N00432WS31002290英语听力课程三N002312DP5 在搜索的时候搜索条件包括creatorId列表grade列表subject列表等且它们不是固定的字典而是从文档CourseIndex的已有数据中获取。 假使上面的数据搜索条件分别是 creatorId列表 100210031004 grade列表 234 subject列表 708090 总结一下需求对es文档的数据进行桶bucket排序以达到去重效果。 下面将介绍如何使用spring-data-elasticsearch 3.2.4实现对指定字段的聚合搜索。 pom.xml引入jar包 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactId/dependencydependencygroupIdorg.springframework.data/groupIdartifactIdspring-data-elasticsearch/artifactIdversion3.2.4.RELEASE/version/dependency二、CourseIndexAggrService.java 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;/*** author xxx*/ Component RequiredArgsConstructor public class CourseIndexAggrService {private final ElasticsearchRestTemplate elasticsearchRestTemplate;private final CommonConfig commonConfig;private static final String UNIQUE_FIELD unique_field;// 需要进行桶排序的字段public static final String CREATOR_ID creatorId;public static final String GRADE grade;public static final String SUBJECT subject;public ListString findUniqueField(String uniqueField) {NativeSearchQueryBuilder queryBuilder new NativeSearchQueryBuilder();BoolQueryBuilder boolQueryBuilder QueryBuilders.boolQuery();//TODO 这里boolQueryBuilder是一个空的查询条件// 过滤掉已逻辑删除的记录 // boolQueryBuilder.filter(QueryBuilders.termQuery(deleted, 0));queryBuilder.withQuery(boolQueryBuilder);TermsAggregationBuilder termsAgg AggregationBuilders.terms(UNIQUE_FIELD).field(uniqueField);queryBuilder.addAggregation(termsAgg);// idx_courseIndex是索引名queryBuilder.withIndices(idx_courseIndex);// CourseIndex是es文档类见下文AggregatedPageCourseIndex 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();// 提取唯一值ListString uniqueUserIds new ArrayList();for (Terms.Bucket bucket : buckets) {uniqueUserIds.add(bucket.getKeyAsString());}return uniqueUserIds;} }三、CourseIndex.java 这里略去了无关本文的字段。 import lombok.Data; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType;import javax.persistence.Id; import java.io.Serializable; import java.util.Set;/*** 课程索引.* p* 索引检索条件并非所有的字段* /p** author xxx*/ 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 no;/*** 创建者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 grade; }四、使用 // 查询创建者creatorId列表 final ListLong userIds courseIndexAggrService.findUniqueField(CREATOR_ID).stream().map(v - Long.parseLong(v)).collect(Collectors.toList());// 查询年级grade列表 final ListInteger grades courseIndexAggrService.findUniqueField(GRADE).stream().map(v - Integer.parseInt(v)).collect(Collectors.toList());// 查询科目subject列表 final ListInteger subjects courseIndexAggrService.findUniqueField(SUBJECT).stream().map(v - Integer.parseInt(v)).collect(Collectors.toList());
http://www.w-s-a.com/news/194426/

相关文章:

  • 国内优秀企业网站做视频网站用什么系统
  • 网站建设入门pdfwordpress网站标题
  • 专业网站的定义网站运营的概念
  • 外贸服装网站建设网页美工设计说明书
  • 郑州专业做网站公百度翻译api wordpress
  • 做网站哪里找大学的一级或二级域名
  • 没有静态ip可以做网站服务器上饶网站制作需要多少钱
  • 网站建设wangzhii做国外网站做什么内容
  • 网站建设 搞笑笑话经典 wordpress主题下载
  • 做网站要懂哪些wordpress 站点网络
  • 郑州外贸网站建设公司排名网站设计做啥好
  • 网站开发合同付款比例wordpress调用指定文章内容
  • 湖北平台网站建设哪里好辽宁建设工程信息网官网平台
  • 公司优化是什么意思?洛阳seo博客
  • 普通建站网站首页制作模板
  • 江苏城乡与住房建设厅网站wordpress 添加导航
  • 免费单页网站在线制作网站制作与网站建设pdf
  • 网站开发使用云数据库技术教程大连模板开发建站
  • 佘山网站建设创造网站需要多少钱
  • 南海佛山网站建设网站维护需要什么技能
  • 阿里云服务器开源做几个网站想找公司做网站
  • 一般做网站是用什么语言开发的域名查询 查询网
  • 地方门户网站源码下载揭阳专业网站建设
  • 网站做优化好还是推广好wordpress百家号模版
  • 淘宝网网站建设的的意见校园微网站建设
  • 小说网站建设之前需求分析免费下载京东购物
  • 园林景观设计案例网站wordpress 文章内容页
  • 网站什么做才会更吸引客户楚雄网站开发rewlkj
  • 电商网站构建预算方案视频制作网站怎么做
  • 包装设计灵感网站ps软件下载电脑版多少钱