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

府谷网站建设网站建设与制作设计公司

府谷网站建设,网站建设与制作设计公司,sae网站备案,视觉设计网站建设说明#xff1a;elasticsearch查询操作除了使用DSL语句的方式#xff08;参考#xff1a;http://t.csdn.cn/k7IGL#xff09;#xff0c;也可以使用API的方式。 准备 使用前需先导入依赖 !--RestHighLevelClient依赖--dependencygroupIdorg.ela…说明elasticsearch查询操作除了使用DSL语句的方式参考http://t.csdn.cn/k7IGL也可以使用API的方式。 准备 使用前需先导入依赖 !--RestHighLevelClient依赖--dependencygroupIdorg.elasticsearch.client/groupIdartifactIdelasticsearch-rest-high-level-client/artifactId/dependency创建一个测试类查询操作代码都写在测试类里面首先先建立RestHighLevelClient的连接 /*** 定义连接*/private RestHighLevelClient client;/*** 初始化客户端*/BeforeEachpublic void init(){client new RestHighLevelClient(RestClient.builder(HttpHost.create(http://服务器IP地址:9200)));}/*** 关闭客户端* throws IOException*/AfterEachpublic void close() throws IOException {client.close();}1、模糊查询 1全部查询 查询student索引库的所有文档 /*** 1.1 全部查询* throws IOException*/Testpublic void queryMatchAll() throws IOException {// 1.创建请求SearchRequest request new SearchRequest(student);// 2.编写DSL语句request.source().equals(QueryBuilders.matchAllQuery());// 3.发送请求SearchResponse response client.search(request, RequestOptions.DEFAULT);// 4.解析返回值并打印SearchHits hits response.getHits();// 遍历hisfor (SearchHit hit : hits) {// 获取字符串String json hit.getSourceAsString();// 解析字符串成对象StudentDoc studentDoc JSON.parseObject(json, StudentDoc.class);// 打印System.out.println(studentDoc studentDoc);}可以看到API方式的全查默认还是值返回前10条 把解析返回值的代码抽取出来成一个方法方便后面使用 /*** 解析返回值并打印* param response*/private void parseJson(SearchResponse response) {// 获取his数据SearchHits hits response.getHits();// 遍历hisfor (SearchHit hit : hits) {// 获取字符串String json hit.getSourceAsString();// 解析字符串成对象StudentDoc studentDoc JSON.parseObject(json, StudentDoc.class);// 打印System.out.println(studentDoc studentDoc);}}2单字段查询 例如查询all字段值为马尔克斯的文档 /*** 1.2 单字段查询* throws IOException*/Testpublic void queryMatch() throws IOException {// 1.创建请求SearchRequest request new SearchRequest(student);// 2.编写DSL语句request.source().query(QueryBuilders.matchQuery(all,马尔克斯));// 3.发送请求SearchResponse search client.search(request, RequestOptions.DEFAULT);// 4.解析返回值并打印parseJson(search);}代码执行完成查询成功 3多字段查询 例如查询name、username和gender字段值包括“陀”的文档 /*** 1.3 多字段查询* throws IOException*/Testpublic void multiMatchQuery() throws IOException {// 1.创建请求SearchRequest request new SearchRequest(student);// 2.创建DSL语句request.source().query(QueryBuilders.multiMatchQuery(陀,name,username,gender));// 3.发送请求SearchResponse search client.search(request, RequestOptions.DEFAULT);// 4.解析返回值并打印parseJson(search);}代码执行完成查询成功 2、精确查询 1term查询 例如查询name值为杜甫的文档 /*** 2.1 term查询* throws IOException*/Testpublic void termQuery() throws IOException {// 1.创建请求SearchRequest request new SearchRequest(student);// 2.创建DSL语句request.source().query(QueryBuilders.termQuery(name,杜甫));// 3.发送请求SearchResponse search client.search(request, RequestOptions.DEFAULT);// 4.解析返回值并打印parseJson(search);}查询完成 2range查询 例如查询job大于1小于等于3的文档 /*** 2.2 range查询* throws IOException*/Testpublic void rangeQuery() throws IOException {// 1.创建请求SearchRequest request new SearchRequest(student);// 2.编写DSL语句request.source().query(QueryBuilders.rangeQuery(job).gt(1).lte(3));// 3.发送请求SearchResponse search client.search(request, RequestOptions.DEFAULT);// 4.解析返回值并打印parseJson(search);}查询完成 3、复合查询 例如查询all字段为萨特并且job≥2≤4的文档 /*** 3. 复合查询* throws IOException*/Testpublic void booleanQuery() throws IOException {// 1.创建请求SearchRequest request new SearchRequest(student);// 2.编写DSL语句request.source().query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery(all,萨特)).filter(QueryBuilders.rangeQuery(job).gte(2).lte(4)));// 3.发送请求SearchResponse search client.search(request, RequestOptions.DEFAULT);// 4.解析返回值并打印parseJson(search);}查询完成因为萨特的job1所以未查询出来 更换job条件为≥1再查询可以查询出来 4、分页、排序查询 例如查询job≥1≤4按照job降序排序并且从第2条文档开始往后取8条 /*** 4. 分页、排序查询* throws IOException*/Testpublic void queryByPageAndSort() throws IOException {// 1.创建请求SearchRequest request new SearchRequest(student);// 2.编写DSL语句request.source().query(QueryBuilders.rangeQuery(job).gte(1).lte(4));// 3.分页查询查询从第2条开始往后8条request.source().from(2).size(8);// 4.排序request.source().sort(job, SortOrder.DESC);// 5.发送请求SearchResponse search client.search(request, RequestOptions.DEFAULT);// 6.解析返回值并打印parseJson(search);}全部符合条件的记录 分页、排序查询后可以看到只有当前页的内容并且job按照升序排序 从结果可以看出from()中的索引是从0开始的from(2)表示从第三条开始计算 5、高亮查询 例如把name等于关羽的文档name字段的值设置为斜体em /*** 6.高亮显示*/Testpublic void heightLight() throws Exception {// 1.创建请求SearchRequest request new SearchRequest(student);// 2.编写DSL语句request.source().query(QueryBuilders.matchQuery(name,关羽));// 3.声明高亮显示request.source().highlighter(new HighlightBuilder().field(name).requireFieldMatch(false));// 4.发送请求SearchResponse search client.search(request, RequestOptions.DEFAULT);// 5.解析返回值SearchHits hits search.getHits();// 6.遍历hisfor (SearchHit hit : hits) {// 7.获取字符串String json hit.getSourceAsString();// 8.解析字符串成对象StudentDoc studentDoc JSON.parseObject(json, StudentDoc.class);// 9.获取高亮字段MapString, HighlightField highlightFields hit.getHighlightFields();// 10.判断高亮字段不能为空if (!CollectionUtils.isEmpty(highlightFields)) {// 11.获取高亮字段值HighlightField highlightField highlightFields.get(name);// 12.判断高亮字段值不等于空if (highlightField ! null){// 13.获取高亮字段值String heightFightName highlightField.getFragments()[0].string();// 14.将高亮字段值重新赋值给对象并打印studentDoc.setName(heightFightName);System.out.println(studentDoc studentDoc);}}}}执行代码可以看到关羽的name字段值被em标签包裹
http://www.hkea.cn/news/14268653/

相关文章:

  • 怎样做自己的微商网站多少钱一斤怎么算
  • ueeshop外贸建站公司espcms易思企业网站
  • 做局域网网站河南省新闻联播
  • 有做教育行业的招聘网站吗现在的公司都有自己的网站吗
  • wordpress 文章版权济南外贸seo
  • 上海创意网站建设新网站 seo
  • 跨境建站服务公司制作报价网站
  • 一般什么行业做网站的多英文网站建设的请示怎么写
  • 为学校网站建设阿里巴巴开网店的详细步骤
  • 外网室内设计网站别人做的网站不能用怎么办
  • 怎样给自己的店做网站网络营销推广的主要形式
  • 一般网站维护要多久nginx进wordpress不能进目录
  • 福州火车站最新消息磁力猫搜索引擎入口官网
  • 广州专业网站改版免费的在线学习网站
  • 国外网站空间租用费用中山网站建设金科
  • 郑州建站的怎么在百度自己创网站
  • 济南做网站企业什么建站公司好
  • 个人网站开发主要问题宁波自助建站公司
  • 十大行情软件网站下载wordpress网站源码
  • 网站广告投放收费标准网站规划建设与管理维护答案
  • 网站的页面由什么组成部门网站建设管理典型经验材料
  • 广东手机网站建设报价梧州网站设计
  • 网站建设微盘下载国外建筑公司网站
  • 珠海手机微信网站建设小程序开发山西网站建设公司排名
  • 平台门户网站建设大学生网站设计作业
  • 如何利用NAS做网站做网站需要登陆服务器网站吗
  • 网站设计框架图中国纪检监察报电子版官网
  • 网站建设与管理案例教程网站技能培训
  • php网站开发与维护职位要求义乌简游网络科技有限公司
  • 鞍山 网站建设网站用什么切版