原文网址:bboss-elasticsearch--API_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍bboss-elasticsearch的API。

官网

Elasticsearch索引文档增删改查 - Elasticsearch Bboss

Elasticsearch开发指南 - Elasticsearch Bboss

注解

官网

ElasticSearch客户端注解介绍 - Elasticsearch Bboss

属性注解

注解 说明 重要属性/示例
@ESId

指定文档id值,作为文档唯一标识。

根据此值对应的索引文档存在与否来决定添加或者修改操作(存在则修改,不存在则添加)。

若不用此注解,添加文档时es自动设置文档id属性。

// 是否将注解属性作为普通文档属性来保存
boolean persistent() default true;

// 查询/检索文档时,是否将文档id设置给对应被注解的属性
boolean readSet() default true;

示例

//ip作为id,根据ip值对应的索引文档存在与否来决定添加或修改

@ESId(readSet = true,persistent = false)
private String ip;

@ESParentId 指定为parentid

// 是否将注解属性作为普通文档属性来保存
boolean persistent() default true;

// 查询/检索文档时,是否将文档id设置给对应被注解的属性
boolean readSet() default true;

@ESVersion

指定为文档版本信息。

// 是否将注解属性作为普通文档属性来保存
boolean persistent() default true;
@ESVersionType

指定文档版本类型。

// 是否将注解属性作为普通文档属性来保存
boolean persistent() default true;
@ESRetryOnConflict 文档修改操作版本冲突重试次数 // 是否将注解属性作为普通文档属性来保存
boolean persistent() default true;
@ESRouting 路由信息 // 是否将注解属性作为普通文档属性来保存
boolean persistent() default true;
@ESDocAsUpsert 文档不存在时是否添加文档 // 是否将注解属性作为普通文档属性来保存
boolean persistent() default true;
@ESSource 返回值是否包含文档source数据的控制变量 // 是否将注解属性作为普通文档属性来保存
boolean persistent() default true;
@Column

指定索引文档和对象属性的映射关系、指定日期格式等。

指定日期格式时一般与@JsonFormat一起使用。例如:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")

@Column(dataformat = "yyyy-MM-dd HH:mm:ss.SSS")

escape:是否对参数值进行特殊字符转义处理。true 处理;false 不处理。

默认为空,这时若是map传递参数,默认转义;若是bean传值,若bean属性指定了@Column(escape="false")则按照注解中设置的escape属性值来控制是否转义,若没在column注解中指定escape,则默认转义。

示例

@Column(name="docInfo.author",dataformat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",timezone = "Etc/UTC",locale = "zh")

private String docInfoAuthor;

@JsonIgnore 不作为es字段保存

@JsonIgnore

private Integer sqlEndElapsed;

@PrimaryKey

跟@EsId作用一样(推荐用@EsId)

@EsId比@PrimaryKey多两个属性:readSet,persistent

@EsIndex

bboss 5.6.8新增了一组添加和修改文档的api,这组api没有带indexName和indextype参数,对应的索引和索引type在po对象中通过@ESIndex注解来指定。

@ESIndex提供了两个属性name和type,使用方法:

@ESIndex(name="indexName") //es 7不需要指定type
@ESIndex(name="indexName",type="indexName")// 索引名称由indexName和日期类型字段agentStarttime通过yyyy.MM.dd格式化后的值拼接而成,索引类型为indexName
@ESIndex(name="indexName-{agentStarttime,yyyy.MM.dd}",type="indexName")// 索引名称由indexName和当前日期通过yyyy.MM.dd格式化后的值拼接而成,索引类型为type字段对应的值
@ESIndex(name="indexName-{dateformat=yyyy.MM.dd}",type="{type}")// 索引名称由indexName和日期类型字段agentStarttime通过yyyy.MM.dd格式化后的值拼接而成,索引类型为type字段对应的值
@ESIndex(name="indexName-{field=agentStarttime,dateformat=yyyy.MM.dd}",type="{field=type}")

示例

@ESIndex(name="indexName",type="indexType")
public class MyEntiry  {//设定文档标识字段@ESId(readSet = true,persistent = false)private Long demoId;...
} 

ClientInterface

可以通过两种方法获得ClientInterface。都是单实例多线程安全的。(实际上,BBossESStarter 里边就是调用的ElasticSearchHelper的静态方法。。。)

SpringBoot环境:注入BBossESStarter 后获取

@Autowired
private BBossESStarter bbossESStarter;ClientInterface clientInterface = bbossESStarter.getRestClient();
//ClientInterface clientInterface = bbossESStarter.getConfigRestClient("esmapper/xxx.xml");

SpringBoot环境通过下边的方法获取也能用,但官方说要使用本处方法,但没有给出原因。经自己使用,SpringBoot环境下使用本方法的优点:

1.能输出向ES服务器发出的请求到控制台

非SpringBoot环境:ElasticSearchHelper静态方法

ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
//ClientInterface clientInterface = ElasticSearchHelper.getConfigRestClientUtil("esmapper/xxx.xml");

除了通过ESId和ESParentId这两个注解来指定文档id和parentid,ClientInterface接口中还提供了一组方法来提供docid和parentid两个参数来指定文档id和parentid。

ClientInterfaceNew

bboss-elasticsearch--API相关推荐

  1. SpringBoot如何整合BBoss Elasticsearch呢

    大家一定很熟悉mybatis了,它是一个持久层框架,可以通过简单的XML或注解来配置,映射为数据库中的数据.我们通常是在xml文件中写sql,来操作数据库中的数据.而接下来要讲的bboss elast ...

  2. python连接es数据库_Python Elasticsearch API操作ES集群

    环境Centos 7.4 Python 2.7 Pip 2.7 MySQL-python 1.2.5 Elasticsearc 6.3.1 Elasitcsearch6.3.2 知识点调用Python ...

  3. elasticsearch api中的Bulk API操作

    在elasticsearch中bulk的概念,其实和sql中的group by有异曲同工的作用. The bulk API allows one to index and delete several ...

  4. elasticsearch api中的Multi Get API操作

    官网:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-multi-get.html Th ...

  5. elasticsearch api中的Delete By Query API操作

    官网:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-delete-by-query.h ...

  6. elasticsearch api中的delete操作

    官网:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-delete.html The d ...

  7. elasticsearch api中的get操作

    官网:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-index.html The ge ...

  8. ElasticSearch API文档查看

    elastic官方API文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html

  9. elasticSearch API

    1.7.API Elasticsearch提供了Rest风格的API,即http请求接口,而且也提供了各种语言的客户端API 2.操作索引 2.1.基本概念 Elasticsearch也是基于Luce ...

  10. Bboss Elasticsearch 简单用法(ES 7.*)

    一.官方文档 https://esdoc.bbossgroups.com/#/README 二.官方demo https://github.com/bbossgroups/elasticsearch- ...

最新文章

  1. oracle查数据存入数组,如何在SQL查询中使用Oracle关联数组
  2. 算法全覆盖,还能玩星际争霸,开源决策智能平台OpenDILab面世
  3. boost::polygon模块实现多边形间隔相关的测试程序
  4. DBCC--CHECKIDENT
  5. .NET 中安全高效跨平台的模板引擎 Fluid 使用文档
  6. html5 轮询自动刷新数据,后台调用exe,前端定时轮询调用结果
  7. 用pycharm写python老是提示错误_python pycharm错误集锦
  8. Python运行环境与异常处理
  9. 你看,公司状告员工不加班,居然还告赢了
  10. bzoj1593 [Usaco2008 Feb]Hotel 旅馆(线段树)
  11. 基于python的数据管理系统的设计_基于Python的自然语言数据处理系统的设计与实现...
  12. 压倒eBay 挑战亚马逊 Shopify到底厉害在哪儿?
  13. css png有白背景图片,透明背景的PNG格式图片在IE显示白色背景的问题(在线等)...
  14. 从0开始的appium+Android+python自动抢红包世界生活
  15. 齐齐哈尔大学计算机专业好么,齐齐哈尔大学(专业学位)计算机技术考研难吗
  16. DWH的保留原始历史数据的一种方法
  17. Android 原生和 JS 交互实践
  18. 八分量基于区块链技术赋能我国工业互联网建设
  19. 最全的Linux运维bash脚本常见用法总结
  20. 简述因特网标准制定的几个阶段?

热门文章

  1. C语言学习周报(第四周)
  2. 职场神攻略:5分钟自我介绍法 快准狠!
  3. postgresql 计算时间差
  4. linux下mysql(rpm)安装使用手册
  5. java ppt 绘图,PPT图片别再直接插入,这样处理一下,让你的PPT秒变高逼格
  6. Laplacian eigenmap 拉普拉斯特征映射
  7. 硬盘活动分区(将磁盘分区标为活动或取消活动的方法)(转)
  8. 如何取消OPPOA33Android系统,OPPO A33系统降级教程_OPPO A33怎么回退到原来旧版本的系统...
  9. linux磁盘坏块 cp报错,Linux磁盘坏道的检测及修复
  10. 《OpenHarmony 3GPP协议开发深度剖析》之--搜网流程之PLMN选择