一,创建es的连接
public TransportClient transportClient(){
    Settings settings = Settings.builder()
            .put("cluster.name", "elasticsearch")
            .build();
    TransportClient client  = new PreBuiltTransportClient(settings);
    TransportAddress transportAddress = null;
    try {
        transportAddress = new TransportAddress(InetAddress.getByName(host), Integer.valueOf(port));
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }
    client.addTransportAddress(transportAddress);
    return client;
}

二,java es api的添加操作

transportClient.prepareIndex("search_index", "doc").setSource(json, XContentType.JSON).get();

三,java es api的修改操作

transportClient.prepareUpdate("search_index", "doc","gug4u3EBSHOgAqyn-5aI").setSource(json, XContentType.JSON).get();

四,java es api的删除操作

transportClient.prepareDelete("search_index", "doc", "gug4u3EBSHOgAqyn-5aI").get();

五,查询QueryBuilders

BoolQueryBuilder queryBuilder= QueryBuilders.boolQuery();
1,matchAllQuery匹配所有

queryBuilder.matchAllQuery();
2,termQuery精准匹配,大小写敏感且不支持

queryBuilder.termQuery("key", value) 一次匹配一个值,完全匹配
queryBuilder.termsQuery("key", obj1, obj2..)   一次匹配多个值
3,matchPhraseQuery对中文精确匹配

queryBuilder.matchPhraseQuery("key", value)

4,matchQuery("key", Obj) 单个匹配, field不支持通配符, 前缀具高级特性

queryBuilder.matchQuery(key, value);
5,multiMatchQuery("text", "field1", "field2"..); 匹配多个字段, field有通配符忒行

queryBuilder.multiMatchQuery(value, key1, key2, key3);
6,组合查询

* must:   AND
   * mustNot: NOT
   * should:: OR
 queryBuilder.must(QueryBuilders.termQuery("user", "kimchy"))
            .mustNot(QueryBuilders.termQuery("message", "nihao"))
            .should(QueryBuilders.termQuery("gender", "male"));

7.should和must

should查询在mysql中就好比是or或,但在es中使用should查询必须要和must一起使用才可以,相当于must[should A,should B],中文解释就好比是满足A或者是B条件的数据,如下这一段shoudl语句的大概意思是满足是用户A上传并且permission状态是private或者permission状态是public的

public void should(){
    // 最外层bool
    BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
    // 使用should的bool
    BoolQueryBuilder shouldBuilder= QueryBuilders.boolQuery();

BoolQueryBuilder must = QueryBuilders.boolQuery().must(QueryBuilders.termQuery(DocumentFieldEnum.upload_user_name.name(), "用户A"))               .must(QueryBuilders.termQuery(DocumentFieldEnum.permission.name(), PermissionEnum.PRIVATE.getKey()));

shouldBuilder.should(must);
    shouldBuilder.should(QueryBuilders.termQuery(DocumentFieldEnum.permission.name(), PermissionEnum.PUBLIC.getKey()));
boolQueryBuilder.must(shouldBuilder);
}

JAVA操作ES中的BoolQueryBuilder 查询方法相关推荐

  1. java操作es之各种高级查询

    目录 一.springboot整合es 1.1 pom依赖 1.2 yml配置 1.3 创建索引 1.4 创建映射 1.5 写入数据 二.Java API操作ES 2.1 查询全部 2.2 精准匹配 ...

  2. Elasticsearch笔记五之java操作es

    Java操作es集群步骤1:配置集群对象信息:2:创建客户端:3:查看集群信息 1:集群名称 默认集群名为elasticsearch,如果集群名称和指定的不一致则在使用节点资源时会报错. 2:嗅探功能 ...

  3. Elasticsearch 之java操作es

    https://blog.csdn.net/ty4315/article/details/52434296 Java操作es集群步骤1:配置集群对象信息:2:创建客户端:3:查看集群信息 1:集群名称 ...

  4. python中字典的查询方法

    python中字典的查询方法包括: 1.直接用key查询,例如dict[key] 返回的就是这个key值对应的value值,如果没有这个key值,则会报错 2.用内置函数items() 返回的就是每一 ...

  5. Java的Map中的map.keySet()方法

    参考: java 常用的数据结构 一:Java的Map中的map.keySet()方法 该方法返回map中所有key值的列表. 今天再代码中看到了Map集合中的HashMap的map.keySet() ...

  6. java操作集合中 concurrentModifyException 异常的原因分析

    java操作集合中 concurrentModifyException 异常的原因分析 参考文章: (1)java操作集合中 concurrentModifyException 异常的原因分析 (2) ...

  7. java有push方法么_[Java教程]js中push和join方法使用介绍

    [Java教程]js中push和join方法使用介绍 0 2013-10-09 07:00:17 push和join方法想必大家并不陌生吧,在本文将为大家详细介绍下js中的push和join方法的使用 ...

  8. java窗体中添加图片_在java窗体程序中添加图片的方法

    在java窗体程序中添加图片的方法 发布时间:2020-06-16 11:24:13 来源:亿速云 阅读:148 作者:Leah 这篇文章主要为大家详细介绍了在java窗体程序中添加图片的方法,图文详 ...

  9. ThinkPHP中的统计查询方法

    ThinkPHP中的统计查询方法 在ThinkPHP中系统提供以下几个查询方法的使用,方便于在后期需要做统计的使用. • count() 表示查询表中总的记录数 • max() 表示查询某个字段的最大 ...

最新文章

  1. 细看晶圆代工之争,纳米制程是什么
  2. c mysql封装 jdbc_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现
  3. 一切都是对象---JAVA编程思想
  4. GCC 编译时优化某一个或几个函数或者不优化某一个或几个函数
  5. 利用python创建学生管理系统软件代码赏析
  6. CNN反向传播算法过程
  7. NHibernate,我越看越傻了.........
  8. rvm install 1.9.2 p136版本ruby
  9. mysql中如何批量删除冗余数据库_WordPress清理数据库中的冗余数据加速网站运行速度...
  10. 经济学原理 下载 曼昆_22考研必看,上海财经的大学801经济学报录比及考情分析(超详细)...
  11. 刑法中关于计算机犯罪的定义,界定计算机犯罪概念的原则
  12. KALI虚拟机挂代理教程
  13. 玩转Fasttext
  14. PDF怎么转换成Excel?转后一页一个子表怎么合并?
  15. 使用cle 调用opengl的简单例子(android)
  16. 虚拟机 Centos8 服务器密码忘了
  17. 常用linux命令(摘自他人笔记)
  18. EXCEL进度管理很好用的模板
  19. Tinker:播放assets文件里视频文件的问题?
  20. 汽车维修管理系统汽车维修管理系统采用B / S架构,主要使用Java技术进行开发,结合最新流行的java和mysql的SSM框架技术。

热门文章

  1. flex简介——css
  2. logit模型应用实例_广义线性模型应用举例之beta回归及R计算
  3. 手把手教你智能硬件开发(六)直流马达
  4. 谈谈反爬虫“政策与对策”
  5. Windows下编译MICO源代码遇到的问题
  6. Lattice Mico8在LMS添加UART
  7. React构造函数中为什么要写 super(props)
  8. fifo的rdata_FIFO的使用总结
  9. 大话卫星导航中的信号处理系列文章——GPS信号L1频点的中频数据生成与验证
  10. matlab怎么求三次微分,matlab课设三阶微分方程多种方法求解.doc