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

dlink nas做网站上海网站建设电影联

dlink nas做网站,上海网站建设电影联,如何做好网站内连,网站分类页标题加长目录 问题背景 解决方案 编写es的mapper 动态dsl编写 使用mapper获取动态dsl 远程调用restful api查询 问题背景 在大数据量的业务系统中#xff0c;一般都会引入Elasticsearch来作为搜索引擎#xff0c;而搜索的条件又是多种多样的。回顾下#xff0c;如果是mysql等…目录 问题背景 解决方案 编写es的mapper 动态dsl编写 使用mapper获取动态dsl 远程调用restful api查询 问题背景 在大数据量的业务系统中一般都会引入Elasticsearch来作为搜索引擎而搜索的条件又是多种多样的。回顾下如果是mysql等这种关系型数据库来作为存储介质呢我们是不是可以通过mybatis的动态sql解析功能就能轻轻松松的搞定。 或许你也许会问es不是提供了java版本的sdk么通过sdk可以动态的构建dsl语句的确实如此不过这样的可读性远远没有将dsl放在xml中可以看下在java代码中操作es的代码案例 public static void main(String[] args) throws IOException {// 初始化RestHighLevelClientRestClientBuilder builder RestClient.builder(new HttpHost(localhost, 9200, http));RestHighLevelClient client new RestHighLevelClient(builder);// 创建查询条件SearchSourceBuilder searchSourceBuilder new SearchSourceBuilder();searchSourceBuilder.query(QueryBuilders.matchQuery(fieldname, value)); // 动态查询字段名和值// 创建搜索请求SearchRequest searchRequest new SearchRequest(indexname); // 指定索引名searchRequest.source(searchSourceBuilder);// 执行搜索SearchResponse searchResponse client.search(searchRequest, RequestOptions.DEFAULT);// 处理搜索结果SearchHits hits searchResponse.getHits();for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}// 关闭客户端client.close();} mybatis的执行流程中就是通过SqlSessionFactory创建SqlSession有了SqlSession可以开始执行sql执行sql的时候会将动态的sql转成一个MappedStatement通过这个可以创建BoundSql我们是不是可以利用mybatis执行mysql的一部分功能拿到BoundSql然后通过http的方式直接远程调用es查询 答案是可行的 解决方案 编写es的mapper package com.tml.mouseDemo.mapper;import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param;Mapper public interface ESMapper {String queryOrderById(Param(name) String name, Param(id) String id); }动态dsl编写 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.tml.mouseDemo.mapper.ESMapperselect idqueryOrderById resultTypestring{query:{bool:[term:{id:${id}}if testname!null,term:{name:${name}}/if]}}/select /mapperdsl的语法就不多介绍了在这个xml文件中可以使用mybatis的if when choose foreach等诸多标签通过这些个标签的组合你可以编写多条件检索的复杂dsl 使用mapper获取动态dsl Testpublic void testEs() {MapString, String map new HashMap();map.put(name, tml);map.put(id, hello world);BoundSql bSql sessionFactory.getConfiguration().getMappedStatement(queryOrderById).getBoundSql(map);log.info(bSql:{}, bSql.getSql()); } 其中sessionFactory是通过spring的自动注入的 Autowired private SqlSessionFactory sessionFactory; 远程调用restful api查询 拿到dsl以后就可以通过http远程调用restful api拿到结果了通过httpClient或者是RestTemplate实现都行这里就不赘述了。
http://www.pierceye.com/news/648074/

相关文章:

  • 网站是哪个公司做wordpress 底部修改插件
  • 嘉兴网站推广优化印度vps
  • 网站seo诊断分析和优化方案青岛网站制作方案
  • 发布个人免费网站的一般流程图宣传广告
  • php学什么可以做网站po wordpress
  • 875网站建设怎么样网站设计高端网站设计
  • qq钓鱼网站怎么制作扬州网站建设哪个好薇
  • 域名和网站空间怎么做解析南阳seo网站推广费用
  • 烟台企业网站建设国内ui网站有哪些
  • 手机网站建设选 朗创营销电商运营的核心公式
  • seo网站排名软件飞机网页设计实训报告
  • 禹城做网站做网站的教科书
  • 基木鱼建站公众号怎么做网站
  • 无水印做海报的网站百度技术培训中心
  • 如何在阿里云上做网站现在最流行的网站开发工具
  • 济宁网站建设联系方式漳州本地网
  • 口腔网站建设wordpress顶部提示
  • 葫芦岛做网站公司如皋网站开发公司
  • 国外开源 企业网站服务好质量好的网站制作
  • sql网站的发布流程品牌建设是什么意思
  • 营口网站建设价格江苏住房和建设厅网站
  • 网站稳定性不好的原因打金新开传奇网站
  • 做网站怎么上传图片厦门建站网址费用
  • 网站设计方案和技巧做设计有必要买素材网站会员吗
  • 成都制作网站软件网站别人帮做的要注意什么东西
  • 徐州建筑网站建网站要自己买服务器吗
  • 网站订单系统模板专业的做网站公司
  • 怎么做加盟美容院网站黄骅港开发区
  • 品牌高端网站制作官网做网站用的小图标
  • 成都网站设计合理柚v米科技泉州建设公司