bboss elasticsearch V5.0.8.2 发布

The best Elasticsearch Highlevel Rest  Client API-----bboss   v5.0.8.2 发布。

主要功能特色

  1. ElasticSearch兼容性:2.x,5.x,6.x,+

  2. JDK兼容性: jdk 1.6+

  3. Spring boot兼容性:1.x,2.x

  4. ORM和DSL二者兼顾,类mybatis方式操作ElasticSearch,支持SQL和JDBC

v5.0.8.2功能改进

  • 1.获取、修改、删除不存在的文档时,处理更加友好,不再抛出异常

               获取不存在的文档时,直接返回null,不再抛出异常

               修改、删除不存在的文档时,返回不存在的json报文 ,不再抛出异常     

  • 2.支持对象直接转json的功能,通过在绑定变量中指定serialJson属性来控制,例如:

    #[dynamicPriceTemplate->rules[$velocityCount],serialJson=true]

  • 3.解决DSL绑定变量引用对象属性的值为null时,报空指针异常问题,例如:goodsId为null时,直接输出null,而不是抛出空指针异常
    #[dynamicPriceTemplate->goodsId]

  • 4.Painless Script 中source/inline可以直接放置绑定变量参数,通过escapeCount属性支持二次转义的功能,脚本配置示例如下:

    <property name="scriptPianduan2">
        <![CDATA[
            "params": {
              "last": #[last],
              "nick": #[nick],
              "goodsId": #[dynamicPriceTemplate->goodsId],
              "rules":[
                   #foreach($rule in $dynamicPriceTemplate.rules)
                       #[dynamicPriceTemplate->rules[$velocityCount],serialJson=true] ## 通过属性serialJson指示框架直接将对象序列化为json数据
                        #if($velocityCount != ($dynamicPriceTemplate.rules.size() - 1)),#end
                   #end
              ]
            }
        ]]>
    </property>
    <property name="scriptDslByQuery">
        <![CDATA[{
          "query": {
            "bool": {
              "must": [
                {
                  "term": {
                    "_id": #[id]
                  }
                }
              ]
            }
          },
          "script": {
            "lang": "painless",
            "source": @"""
              ctx._source.last = params.last;
              ctx._source.lastSpecial = "#[last,quoted=false]";
              ctx._source.nick = params.nick;
              ctx._source.goodName = #[dynamicPriceTemplate->goodName,escapeCount=2];#*在脚本中,含有特殊字符的goodName需要转义2次*#
              ctx._source.goodsId = #[dynamicPriceTemplate->goodsId];
              ctx._source.dynamicPriceTemplate.goodsId = params.goodsId;
              ctx._source.rules = params.rules
            """,
            @{scriptPianduan2}
          }
        }]]>
    </property>

执行上面Painless Script的Java代码:ScriptImpl.java 

  • 5 解决因为分表日期格式参数elasticsearch.dateFormat没有配置而抛出异常的问题

快速集成和应用参考文档 

所有项目集成参考文档:https://my.oschina.net/bboss/blog/1801273 

spring boot项目集成参考文档:https://my.oschina.net/bboss/blog/1835601

详细使用文档 

https://my.oschina.net/bboss/blog/1556866 

源码托管地址 

http://github.com/bbossgroups/bboss-elastic 

https://gitee.com/bboss/bboss-elastic 

猜你喜欢

转载自www.oschina.net/news/97767/bboss-elastic-5-0-8-2-released