热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Elasticsearch教程,Elasticsearchcount查询,Elasticsearch查询是否存在

https:www.sojson.comblog206.html 一、ElasticsearchCount查询当我们使用  Elasticsearch 的时候,如果只想知道符合条件

https://www.sojson.com/blog/206.html

 

一、Elasticsearch Count查询

当我们使用  Elasticsearch  的时候,如果只想知道符合条件的结果集,应该怎么查询?

更多教程点击:  Elasticsearch教程  。

1.1 Elasticsearch count Java API 查询

 
  1. Client client = ESTools.client;
    SearchResponse respOnse= client.prepareSearch(MappingManager.ASK)
    .setTypes(MappingManager.ASK)
    .setQuery(new TermQueryBuilder("id", id))//设置查询类型
    .setSearchType(SearchType.COUNT)//设置查询类型,有的版本可能过期
    .setSize(0)//设置返回结果集为0
    .get();
    long length = response.getHits().totalHits();

最后返回了符合结果集的Count 数量,但是不返回结果集,不反回结果集靠size = 0  来决定,当然我觉得  Elasticsearch  在一些版本里应该会对数据级别的Count 查询应该有更好的优化,自己对应想当前版本的  API  。我的Version:2.0.2 。

1.2 Elasticsearch count Http API 查询

 
  1. POST - http://192.168.0.1:9200/index/type/_search/
  2. {
  3. "size" : 0,
  4. "query" : {
  5. "term" : {
  6. "id" : "adf183208e9a4116353e9d9cd78f2b6a"
  7. }
  8. }
  9. }

Elasticsearch教程 ,Elasticsearch count 查询,Elasticsearch 查询是否存在


 

1.3 Elasticsearch Index Count查询

 
  1. CountResponse respOnse= client.prepareCount("index1","index2").get();
  2. long count = response.getCount();//返回当前index Count数量

1.4 Elasticsearch Type Count查询

 
  1. CountResponse respOnse= client.prepareCount("index1","index2").setTypes("type1","type2").get();
  2. long count = response.getCount();//返回符合条件的数据

二、Elasticsearch 查询数据是否存在

我也是认为  Elasticsearch  一些版本会有这个方法。下面看看官方的介绍:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-exists.html 

2.1 curl 方式查询数据是否存在:

查询:

 
  1. $ curl -XGET 'http://localhost:9200/twitter/tweet/_search/exists?q=user:kimchy'
  2.  
  3. $ curl -XGET 'http://localhost:9200/twitter/tweet/_search/exists' -d '
  4. {
  5. "query" : {
  6. "term" : { "user" : "kimchy" }
  7. }
  8. }'

 

返回结果:

 
  1. {
  2. "exists" : true
  3. }

  Java  API 我这个版本我没找到,其他版本有一些应该有 Java API 。

2.2 Elasticsearch Java API 数据Exists判断。

 
  1. /**
  2. * 判断数据是否存在
  3. * @param id
  4. * @return
  5. */
  6. public static boolean existsById(String id){
  7. Client client = ESTools.client;
  8. SearchRequestBuilder searchBuilder = client.prepareSearch(MappingManager.ASK)
  9. .setTypes(MappingManager.ASK)
  10. .setQuery(new TermQueryBuilder("id", id))//设置查询类型
  11. .setSearchType(SearchType.COUNT)//设置查询类型,有的版本可能过期
  12. .setSize(0);//设置返回结果集为0
  13. SearchResponse respOnse= searchBuilder.get();
  14. long length = response.getHits().totalHits();
  15. return length > 0;
  16. }

2.3 Elasticsearch Java API 判断 Index 是否存在。

 
  1. //Index 可以多个
  2. ExistsRequest request = new ExistsRequest("index1","index2");
  3. ExistsResponse respOnse= client.exists(request).get();
  4. //返回是否存在
  5. boolean exists = response.exists();

2.4 Elasticsearch Java API 判断 Type 是否存在。

 
  1. //Index 可以多个
  2. ExistsRequest request = new ExistsRequest("index1","index2").types("type1","type2");
  3. ExistsResponse respOnse= client.exists(request).get();
  4. //返回是否存在
  5. boolean exists = response.exists();

推荐阅读
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
author-avatar
小谢blue
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有