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

专业的网站建设公司排名网站建设人员分工

专业的网站建设公司排名,网站建设人员分工,app开发用什么编程语言,wordpress 3.9.2标签#xff1a;ElasticSearch8.Kibana8#xff1b; 一、简介 Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎#xff0c;适用于各种数据类型#xff0c;数字、文本、地理位置、结构化数据、非结构化数据#xff1b; 在实际的工作中#xff0c;历经过Ela… 标签ElasticSearch8.Kibana8 一、简介 Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎适用于各种数据类型数字、文本、地理位置、结构化数据、非结构化数据 在实际的工作中历经过Elasticsearch从6.0到7.0的版本升级而这次SpringBoot3和ES8.0的集成虽然脚本的语法变化很小但是Java客户端的API语法变化很大 二、环境搭建 1、下载安装包 需要注意的是这些安装包的版本要选择对应的不然容易出问题 软件包elasticsearch-8.8.2-darwin-x86_64.tar.gz 分词器工具elasticsearch-analysis-ik-8.8.2.zip 可视化工具kibana-8.8.2-darwin-x86_64.tar.gz2、服务启动 不论是ES还是Kibana在首次启动后会初始化很多配置文件可以根据自己的需要做相关的配置调整比如常见的端口调整资源占用安全校验等 1、启动ES elasticsearch-8.8.2/bin/elasticsearch本地访问localhost:92002、启动Kibana kibana-8.8.2/bin/kibana本地访问http://localhost:5601# 3、查看安装的插件 http://localhost:9200/_cat/plugins - analysis-ik 8.8.2三、工程搭建 1、工程结构 2、依赖管理 在starter-elasticsearch组件中实际上依赖的是elasticsearch-java组件的8.7.1版本 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactIdversion${spring-boot.version}/version /dependency3、配置文件 在上面环境搭建的过程中已经禁用了用户和密码的登录验证配置ES服务地址即可 spring:# ElasticSearch配置elasticsearch:uris: localhost:9200四、基础用法 1、实体类 通过Document和Field注解描述ES索引结构的实体类注意这里JsonIgnoreProperties注解解决索引中字段和实体类非一一对应的而引起的JSON解析问题 JsonIgnoreProperties(ignoreUnknown true) Document(indexName contents_index, createIndex false) public class ContentsIndex implements Serializable {private static final long serialVersionUID1L;Field(type FieldType.Integer)private Integer id;Field(type FieldType.Keyword)private String title;Field(type FieldType.Keyword)private String intro;Field(type FieldType.Text)private String content;Field(type FieldType.Integer)private Integer createId;Field(type FieldType.Keyword)private String createName;Field(type FieldType.Date,format DateFormat.date_hour_minute_second)private Date createTime; }2、初始化索引 基于ElasticsearchTemplate类和上述实体类实现索引结构的初始化并且将tb_contents表中的数据同步到索引中最后通过ID查询一条测试数据 Service public class ContentsIndexService {private static final Logger log LoggerFactory.getLogger(ContentsIndexService.class);Resourceprivate ContentsService contentsService ;Resourceprivate ElasticsearchTemplate template ;/*** 初始化索引结构和数据*/public void initIndex (){// 处理索引结构IndexOperations indexOps template.indexOps(ContentsIndex.class);if (indexOps.exists()){boolean delFlag indexOps.delete();log.info(contents_index existsdelete:{},delFlag);indexOps.createMapping(ContentsIndex.class);} else {log.info(contents_index not exists);indexOps.createMapping(ContentsIndex.class);}// 同步数据库表记录ListContents contentsList contentsService.queryAll();if (contentsList.size() 0){ListContentsIndex contentsIndexList new ArrayList() ;contentsList.forEach(contents - {ContentsIndex contentsIndex new ContentsIndex() ;BeanUtils.copyProperties(contents,contentsIndex);contentsIndexList.add(contentsIndex);});template.save(contentsIndexList);}// ID查询ContentsIndex contentsIndex template.get(10,ContentsIndex.class);log.info(contents-index-10:{},contentsIndex);} }3、仓储接口 继承ElasticsearchRepository接口可以对ES这种特定类型的存储库进行通用增删改查操作在测试类中对该接口的方法进行测试 // 1、接口定义 public interface ContentsIndexRepository extends ElasticsearchRepositoryContentsIndex,Long { }// 2、接口测试 public class ContentsIndexRepositoryTest {Autowiredprivate ContentsIndexRepository contentsIndexRepository;Testpublic void testAdd (){// 单个新增contentsIndexRepository.save(buildOne());// 批量新增contentsIndexRepository.saveAll(buildList()) ;}Testpublic void testUpdate (){// 根据ID查询后再更新OptionalContentsIndex contentsOpt contentsIndexRepository.findById(14L);if (contentsOpt.isPresent()){ContentsIndex contentsId contentsOpt.get();System.out.println(id14:contentsId);contentsId.setContent(update-content);contentsId.setCreateTime(new Date());contentsIndexRepository.save(contentsId);}}Testpublic void testQuery (){// 单个ID查询OptionalContentsIndex contentsOpt contentsIndexRepository.findById(1L);if (contentsOpt.isPresent()){ContentsIndex contentsId1 contentsOpt.get();System.out.println(id1:contentsId1);}// 批量ID查询IteratorContentsIndex contentsIterator contentsIndexRepository.findAllById(Arrays.asList(10L,12L)).iterator();while (contentsIterator.hasNext()){ContentsIndex contentsIndex contentsIterator.next();System.out.println(idcontentsIndex.getId():contentsIndex);}}Testpublic void testDelete (){contentsIndexRepository.deleteById(15L);contentsIndexRepository.deleteById(16L);} }4、查询语法 无论是ElasticsearchTemplate类还是ElasticsearchRepository接口都是对ES常用的简单功能进行封装在实际使用时复杂的查询语法还是依赖ElasticsearchClient和原生的API封装 这里主要演示七个查询方法主要涉及ID查询字段匹配组合与范围查询分页与排序分组统计最大值查询和模糊匹配更多的查询API还是要多看文档中的案例才行 public class ElasticsearchClientTest {Autowiredprivate ElasticsearchClient client ;Testpublic void testSearch1 () throws IOException {// ID查询GetResponseContentsIndex resp client.get(getReq -getReq.index(contents_index).id(7), ContentsIndex.class);if (resp.found()){ContentsIndex contentsIndex resp.source() ;System.out.println(contentsIndex-7contentsIndex);}}Testpublic void testSearch2 () throws IOException {// 指定字段匹配SearchResponseContentsIndex resp client.search(searchReq - searchReq.index(contents_index).query(query - query.match(field - field.field(createName).query(张三))),ContentsIndex.class);printResp(resp);}Testpublic void testSearch3 () throws IOException {// 组合查询姓名和时间范围Query byName MatchQuery.of(field - field.field(createName).query(王五))._toQuery();Query byTime RangeQuery.of(field - field.field(createTime).gte(JsonData.of(2023-07-10T00:00:00)).lte(JsonData.of(2023-07-12T00:00:00)))._toQuery();SearchResponseContentsIndex resp client.search(searchReq - searchReq.index(contents_index).query(query - query.bool(boolQuery - boolQuery.must(byName).must(byTime))),ContentsIndex.class);printResp(resp);}Testpublic void testSearch4 () throws IOException {// 排序和分页在14条数据中根据ID倒序排列从第5条往后取4条数据SearchResponseContentsIndex resp client.search(searchReq - searchReq.index(contents_index).from(5).size(4).sort(sort - sort.field(sortField - sortField.field(id).order(SortOrder.Desc))),ContentsIndex.class);printResp(resp);}Testpublic void testSearch5 () throws IOException {// 根据createId分组统计SearchResponseContentsIndex resp client.search(searchReq - searchReq.index(contents_index).aggregations(createIdGroup,agg - agg.terms(term - term.field(createId))),ContentsIndex.class);Aggregate aggregate resp.aggregations().get(createIdGroup);LongTermsAggregate termsAggregate aggregate.lterms();BucketsLongTermsBucket buckets termsAggregate.buckets();for (LongTermsBucket termsBucket : buckets.array()) {System.out.println(termsBucket.key() : termsBucket.docCount());}}Testpublic void testSearch6 () throws IOException {// 查询最大的IDSearchResponseContentsIndex resp client.search(searchReq - searchReq.index(contents_index).aggregations(maxId,agg - agg.max(field - field.field(id))),ContentsIndex.class);for (Map.EntryString, Aggregate entry : resp.aggregations().entrySet()){System.out.println(entry.getKey():entry.getValue().max().value());}}Testpublic void testSearch7 () throws IOException {// 模糊查询title字段允许1个误差Query byContent FuzzyQuery.of(field - field.field(title).value(设计).fuzziness(1))._toQuery();SearchResponseContentsIndex resp client.search(searchReq - searchReq.index(contents_index).query(byContent),ContentsIndex.class);printResp(resp);}private void printResp (SearchResponseContentsIndex resp){TotalHits total resp.hits().total();System.out.println(totaltotal);ListHitContentsIndex hits resp.hits().hits();for (HitContentsIndex hit: hits) {ContentsIndex contentsIndex hit.source();System.out.println(hit.id()contentsIndex);}} }五、参考源码 文档仓库 https://gitee.com/cicadasmile/butte-java-note源码仓库 https://gitee.com/cicadasmile/butte-spring-parent
http://www.dnsts.com.cn/news/98323.html

相关文章:

  • 邮箱的官方网站注册链家网
  • 加盟网站做推广怎么收费快速设计网站
  • 信阳市两学一做网站基于node网站毕设代做
  • 怎么做直播网站vue.js做个人网站
  • 网站建设对企业的发展一般使用的分辨率是多少dpi?
  • 网站页面框架设计影响用户WordPress部分内容登录可见
  • 电子商务网站设计小结长沙市做网站公司
  • .net做的网站旺店通app手机企业版下载
  • 重庆市网站备案厦门百度竞价开户
  • 坂田英文网站制作小程序注册商标第几类
  • 12306网站建设杭州网站制作方法
  • 萍乡海绵城市建设官方网站支付网站建设推广的会计分录
  • 天津城市建设招标网站代理记账公司注册需要什么条件
  • 网站建设规划要点详解wordpress留言区
  • php购物网站开发uml图j建设局域网网站
  • 河南省能源规划建设局网站重庆有什么好玩的旅游景点
  • 桥梁建设网站哪个网站做网站好
  • 服务好的郑州网站建设百度推广费用可以退吗
  • 网站产品详情用哪个软件做的东莞网站建设咨询
  • 椒江网站建设广州网站开发设计公司
  • 360建站平台个人域名备案需要什么
  • 做机加工的网站房屋中介做网站的书籍
  • 内蒙古生产建设兵团四师三十四团知青网站园林效果图网站
  • discuz培训网站模板下载企业网站优化包括哪三个方面
  • 网站开发讲座一个网站推广
  • 东城做网站郑州网站建设及托管
  • php 网站后台想做外贸生意如何起步
  • 网站 改版 方案企业网络营销案例分析
  • 网站维护的方式有哪几种专业做医药招聘的网站
  • 有哪些做壁纸的网站好百度识图网页版在线