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

济南哪里做网站好创办网页

济南哪里做网站好,创办网页,做娃衣的布料去哪个网站,海南省一、前言 注#xff1a;本文实现了Java对Elasticseach的分页检索/不分页检索的封装 ES就不用过多介绍了#xff0c;直接上代码#xff1a; 二、实现步骤#xff1a; 创建Store类#xff08;与ES字段对应#xff0c;用于接收ES数据#xff09; import com.alibaba.f…一、前言 注本文实现了Java对Elasticseach的分页检索/不分页检索的封装 ES就不用过多介绍了直接上代码 二、实现步骤 创建Store类与ES字段对应用于接收ES数据 import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field;/*** indexName 索引名称 理解为数据库名 限定小写* type 理解为数据库的表名称* shards 默认分区数* replicas 每个分区默认的备份数* refreshInterval 刷新间隔* indexStoreType 索引文件存储类型**/ Data Builder NoArgsConstructor AllArgsConstructor Document(indexName yourIndex, shards n, replicas n, refreshInterval n) public class Store implements Serializable {/*** 属性与ES字段对应* 注Field注解* 若Java属性名与ES字段名不同则根据Field的name属性匹配ES字段* 若Java属性名与ES字段名完全相同则不用加该注解或name属性*/Field(name yourESfield)private String yourAttribute; }Elasticsearch全文检索接口不分页检索 import com.alibaba.fastjson2.JSON; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.sort.SortOrder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors;Slf4j Component public class Elasticsearch{Autowiredprivate RestHighLevelClient restHighLevelClient;/*** 不分页检索** param yourIndex 索引* param builder 搜索条件* param sortField 排序属性* param sortOrder 排序方式* param clazz 返回类* param T 泛型* return 分页表格*/SuppressWarnings(checkstyle:ParameterNumber)public T ListT searchListByCond(String yourIndex, BoolQueryBuilder builder, String sortField, SortOrder sortOrder, ClassT clazz) {SearchSourceBuilder sourceBuilder new SearchSourceBuilder();sourceBuilder.query(builder);if (StringUtils.isNotBlank(sortField)) {sourceBuilder.sort(sortField, sortOrder);}SearchRequest request new SearchRequest(yourIndex);request.source(sourceBuilder);SearchResponse response null;try {response restHighLevelClient.search(request, RequestOptions.DEFAULT);} catch (Exception e) {log.error(Search Elasticsearch Error!, e);}if (response null) {return Collections.emptyList();}return Arrays.stream(response.getHits().getHits()).map(v - JSON.parseObject(v.getSourceAsString(), clazz)).collect(Collectors.toList());} }Elasticsearch全文检索接口分页检索 /*** 分页检索** param yourIndex 索引* param builder 搜索条件* param page 分页参数自己封装一个分页类网上很多easy* param sortField 排序属性* param sortOrder 排序方式* param clazz 返回类* param T 泛型* return 分页表格*/SuppressWarnings(checkstyle:ParameterNumber)public T PageT searchPageByCond(String yourIndex, BoolQueryBuilder builder, PageT page, String sortField, SortOrder sortOrder, ClassT clazz) {SearchSourceBuilder sourceBuilder new SearchSourceBuilder();sourceBuilder.query(builder);sourceBuilder.from(Math.max(page.getOffset(), 0));sourceBuilder.size(page.getLimit());if (StringUtils.isNotBlank(sortField)) {sourceBuilder.sort(sortField, sortOrder);}SearchRequest request new SearchRequest(yourIndex);request.source(sourceBuilder);SearchResponse response null;try {response restHighLevelClient.search(request, RequestOptions.DEFAULT);} catch (Exception e) {log.error(Search Elasticsearch Error!, e);}if (response null) {page.setRows(Collections.emptyList());page.setTotal(0);return page;}page.setRows(Arrays.stream(response.getHits().getHits()).map(v - JSON.parseObject(v.getSourceAsString(), clazz)).collect(Collectors.toList()));page.setTotal((int) response.getHits().getTotalHits().value);return page;}三、总结 本文实现了Java对Elasticsearch搜索引擎全文检索的封装 传入索引、BoolQueryBuilder查询条件选传、排序方式选传、Store数据接收类 即可完成对Elasticsearch的全文分页检索、不分页检索
http://www.w-s-a.com/news/393057/

相关文章:

  • 网站建设详细合同范本长沙注册公司流程与费用
  • 搜索引擎网站录入wordpress怎么修改导航
  • 业务接单网站重庆网站制
  • 绿色农产品网站景区网站建设策划方案
  • 服务器做ssr后还可以做网站吗品牌形象设计公司
  • 太原网站制作计划wordpress创建文章
  • 网站优化要怎么做seo网站关键词优化报价
  • 公司网站友情链接怎么做副链华为荣耀手机官网
  • 一条龙做网站旅游网页设计模板图凡科
  • 中山网站建设哪家便宜在中国做外国网站怎么收钱
  • 网站优化大计孝感注册公司
  • 设计接单app平台有哪些在线网站seo诊断
  • 兰州网站建设推广现代营销手段有哪些
  • 郴州网站seo优化网络安全哪个培训班比较好
  • 做网站需要记哪些代码企业网站建设思路
  • 重庆自助建站模板网络服务器配置与管理
  • 外贸网站怎样做小程序买量平台
  • 中山精品网站建设机构海外留学网站建设方案
  • 长春网站建设工作如何取消wordpress页脚
  • 忻府网站建设排名网络管理系统官网
  • 张家港外贸网站建设国医堂网站平台建设
  • 水冶那里有做网站的对于网站链接优化有哪些建议
  • 宝安中心地铁站是几号线化妆品网站做的好的
  • 海宁营销型网站设计企业融资是什么意思
  • 淘宝客做网站要钱吗网站开发试题库
  • 10g空间网站做视频网站网站建设找超速云
  • 一元购网站怎么做企业网站源码cms
  • 域名不变 网站改版临沂企业网站建站模板
  • 天河网站建设信科网络外包公司和公司直招哪个好
  • 网站制作哈尔滨聊天系统源码